Buat Layoutnya
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<EditText
android:id="@+id/search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Search..." />
<ListView
android:id="@+id/lv_data"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/search" >
</ListView>
<TextView
android:id="@+id/empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lv_data"
android:text="Data yang Anda cari tidak ada" />
</RelativeLayout>
Buat Program Javanya
package com.example.contohistilaharti;
import java.util.List;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
public class MainActivity extends Activity implements TextWatcher, OnItemClickListener {
private EditText search;
private ListView lv;
private DatabaseHelper dbHelper;
private ArrayAdapter<Kamus> adapter;
private List<Kamus> listKamus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
lv = (ListView) findViewById(R.id.lv_data);
lv.setEmptyView(findViewById(R.id.empty));
search = (EditText) findViewById(R.id.search);
dbHelper = DatabaseHelper.getInstance(this);
setData();
search.addTextChangedListener(this);
lv.setOnItemClickListener(this);
}
private void setData() {
listKamus = dbHelper.getAllKamus();
adapter = new ArrayAdapter<Kamus>(this,
android.R.layout.simple_expandable_list_item_1, listKamus);
lv.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long id) {
// TODO Auto-generated method stub
Bundle b = new Bundle();
b.putString("istilah", adapter.getItem(position).getIstilah());
b.putString("arti", adapter.getItem(position).getArti());
Intent i = new Intent(this, ArtiActivity.class);
i.putExtras(b);
startActivity(i);
finish();
}
@Override
public void afterTextChanged(Editable arg0) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
int arg3) {
// TODO Auto-generated method stub
}
@Override
public void onTextChanged(CharSequence s, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
adapter.getFilter().filter(s.toString());
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case R.id.action_settings:
Intent startActivityDictionary = new Intent(this, MainActivity.class);
startActivity(startActivityDictionary);
return true;
case R.id.action_about:
Intent startActivityAbout = new Intent(this, AboutActivity.class);
startActivity(startActivityAbout);
return true;
case R.id.action_exit:
finish();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Berikut Layout Untuk Menampilkan Istilahnya
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".ArtiActivity" >
<TextView
android:id="@+id/istilah"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Istilah" />
<TextView
android:id="@+id/garis"
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_below="@id/istilah"
android:background="#000" />
<TextView
android:id="@+id/arti"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/garis"
android:text="Arti" />
</RelativeLayout>
Nah, ini Program Java Untuk Menemukan Istilahnya
package com.example.contohistilaharti;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
public class ArtiActivity extends Activity {
private TextView txtArti, txtIstilah;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_arti);
Bundle b = getIntent().getExtras();
txtIstilah = (TextView) findViewById(R.id.istilah);
txtArti = (TextView) findViewById(R.id.arti);
txtIstilah.setText(b.getString("istilah"));
txtArti.setText(b.getString("arti"));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.arti, menu);
return true;
}
}
Ingat! Program Istilah-Arti ini butuh class untuk memanggil data di database. Kita butuh dua class, yaitu class untuk deklarasi database, "DatabaseHelper.java"
package com.example.contohistilaharti;
import java.util.ArrayList;
import java.util.List;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class DatabaseHelper extends SQLiteAssetHelper {
private static final String DB_NAME = "db_kamus2";
private static final int DB_VER = 1;
private static final String TB_DATA = "tb_kamus";
public static final String COL_ID = "_id";
public static final String COL_ISTILAH = "istilah";
public static final String COL_ARTI = "arti";
private static DatabaseHelper dbInstance;
private static SQLiteDatabase db;
private DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VER);
}
public static DatabaseHelper getInstance(Context context) {
if (dbInstance == null) {
dbInstance = new DatabaseHelper(context);
db = dbInstance.getWritableDatabase();
}
return dbInstance;
}
@Override
public synchronized void close() {
super.close();
if (dbInstance != null) {
dbInstance.close();
}
}
public List<Kamus> getAllKamus() {
List<Kamus> lisKamus = new ArrayList<Kamus>();
Cursor cursor = db.query(TB_DATA, new String[] { COL_ID, COL_ID,
COL_ARTI, COL_ISTILAH }, null, null, null, null, COL_ISTILAH);
if (cursor.getCount() >= 1) {
cursor.moveToFirst();
do {
Kamus kamus = new Kamus();
kamus.setArti(cursor.getString(cursor
.getColumnIndexOrThrow(COL_ARTI)));
kamus.setIstilah(cursor.getString(cursor
.getColumnIndexOrThrow(COL_ISTILAH)));
lisKamus.add(kamus);
} while (cursor.moveToNext());
}
return lisKamus;
}
}
Dan class untuk menangani operasi set-get datanya, "Kamus.java"
package com.example.contohistilaharti;
public class Kamus {
private String istilah;
private String arti;
public String getIstilah() {
return istilah;
}
public void setIstilah(String istilah) {
this.istilah = istilah;
}
public String getArti() {
return arti;
}
public void setArti(String arti) {
this.arti = arti;
}
@Override
public String toString() {
return this.istilah;
}
}
fileDb
fileAssetHelper
Tidak ada komentar:
Posting Komentar