Anda di halaman 1dari 15

UJIAN TENGAH SEMESTER

Pemrograman Orientasi Objek 2


HARI
WAKTU
DOSEN
SIFAT

:
:
:
:

120 Menit (Waktu Maksimal)


Khoerul Umam,ST
Praktek

Dalam UTS kali ini Anda diharapkan memahami tentang struktur code pemrograman pada Android.
mengimplementasi fungsi/method yang belum lengkap, mengetahui keterkaitan dan arsitektur pemrograman
mobile. Sampai pada tiap tahap-tahap menjalankan program Project Android sederhana.
1. Buat Project Android baru dengan nama Kamus.
2. Buat Class baru dengan nama DatabaseHelper.java ketik script dibawah ini.
package com.example.kamus;
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper(Context context) {
super(context, DATABASE_NAME, null, 1);
// TODO Auto-generated constructor stub
}
private static final String DATABASE_NAME = "dbkamus";
public static final String INGGRIS= "inggris";
public static final String INDONESIA = "indonesia";
public static final String JERMAN = "JERMAN";
//Constructor DataKamus untuk initiate database
public void createTable(SQLiteDatabase db){
db.execSQL("DROP TABLE IF EXISTS kamus");
db.execSQL("CREATE TABLE if not exists kamus (_id INTEGER
PRIMARY KEY AUTOINCREMENT, " + "inggris TEXT, indonesia TEXT, jerman
TEXT);");
}
public void generateData(SQLiteDatabase db){
ContentValues cv=new ContentValues();
cv.put(INGGRIS, "run");
cv.put(INDONESIA, "lari");
cv.put(JERMAN, "laufen");
db.insert("kamus", INGGRIS, cv);
cv.put(INGGRIS, "walk");
cv.put(INDONESIA, "jalan");
cv.put(JERMAN, "gehen");
db.insert("kamus", INDONESIA, cv);
cv.put(INGGRIS, "read");
cv.put(INDONESIA, "membaca");
cv.put(JERMAN, "lesen");
db.insert("kamus", JERMAN, cv);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
// TODO Auto-generated method stub
createTable(db);
generateData(db);
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
//Toast.makeText(getBaseContext(), "Oncreate",
Toast.LENGTH_SHORT).show();
createTable(db);
generateData(db);

Masih ada error. Silahkan amati, lalu perbaiki dengan benar.

Pada class inilah database dibuat dengan nama dbkamus, disini table juga dibuat dengan nama kamus
dan diisikan dengan beberapa data.
3. Edit file activity_main.xml dengan drag and drop agar menampilkan struktur layout seperti di bawah ini
Note: menggunakan Linear Layout.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

Keterangan komponen terdiri dari:


1. TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Kamus Inggris Indonesia Jerman"
2. TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Inggris :"
3. EditText
android:id="@+id/txtInggris"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text=""
4. Button
android:id="@+id/btnTerjemah"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="getTerjemahan"
android:text="Terjemahkan"
5. TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Indonesia :"
6. EditText
android:id="@+id/txtIndonesia"

android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:editable="false"
android:text=""
7. TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Jerman"
8. EditText
android:id="@+id/txtJerman"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
~

4. Edit file MainActivity.java dengan script code dibawah ini.

public class MainActivity extends Activity {


private SQLiteDatabase db = null;
private Cursor kamusCursor = null;
private EditText txtInggris;
private EditText txtIndonesia;
private EditText txtJerman;
private DatabaseHelper datakamus = null;
public static final String INGGRIS = "inggris";
public static final String INDONESIA = "indonesia";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
datakamus = new DatabaseHelper(this);
db = datakamus.getWritableDatabase();
setContentView(R.layout.activity_main);
txtInggris = (EditText) findViewById(R.id.txtInggris);
txtIndonesia = (EditText) findViewById(R.id.txtIndonesia);
txtJerman = (EditText) findViewById(R.id.txtJerman);
}
public void getTerjemahan(View view) {
String bhsindonesia = "";
String bhsjerman="";
String englishword = txtInggris.getText().toString();
kamusCursor = db.rawQuery("SELECT _ID, INGGRIS, INDONESIA, JERMAN " +
"FROM kamus where INGGRIS='" + englishword + "' ORDER BY INGGRIS", null);
if (kamusCursor.moveToFirst()) {
for (; !kamusCursor.isAfterLast();
kamusCursor.moveToNext()) {
bhsindonesia = kamusCursor.getString(2);
bhsjerman = kamusCursor.getString(3);
}
}
else {
Toast.makeText(getBaseContext(), "Terjemahan Tidak ditemukan",
Toast.LENGTH_SHORT).show();
}
txtIndonesia.setText(bhsindonesia);
txtJerman.setText(bhsjerman);
}
@Override
public void onDestroy() {
super.onDestroy();
try {
kamusCursor.close();
db.close();
}
catch (Exception e){
}
}

Masih ada error. Silahkan amati, lalu perbaiki dengan benar.


5. OK, Sampai disini, silahkan di Run, menggunakan AVD untuk memastikan sistemnya berjalan.
6. Jika disini sudah berhasil membuat kamus, sekarang kita ingin menampilkan kata-kata dalam database
kedalam list.
Jika belum berhasil, lakukan dari no 1. Cek semua kemungkinan kesalahan.
7. Buat Layout baru dengan nama row.xml

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:paddingBottom="5sp"
android:paddingTop="5sp" >
<TextView
android:id="@+id/inggris"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true" />
<TextView
android:id="@+id/indonesia"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/inggris" />
<TextView
android:id="@+id/jerman"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/indonesia" />
</RelativeLayout>

Pastikan di Graphical Layout sudah benar.


8. Buat Layout baru dengan nama daftarkata.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/textView1"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text = "Inggris"
android:textSize="20sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView1"
android:text = "Indonesia"
android:textSize="20sp" />
<TextView
android:id="@+id/textView3"
android:layout_width="100sp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/textView2"
android:text = "Jerman"
android:textSize="20sp" />
<ListView
android:id="@+id/list1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_weight="1" >
</ListView>
</RelativeLayout>

9. Buat Class baru dengan nama DaftarKata.java lalu ketikkan kode berikut. Perbaiki error nya.

package com.example.kamus;
import android.app.Activity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class DaftarKata extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbhelper = new DatabaseHelper(this);
setContentView(R.layout.daftarkata);
listContent = (ListView) findViewById(R.id.list1);
isDataListView();
}
private void isDataListView() {
try {
db = dbhelper.getWritableDatabase();
kamusCursor = db.query("kamus", new String[] { "_id", "inggris",
"indonesia", "jerman" }, "_id>0", null, null, null, null);
// startManagingCursor( jasaCursor);
/* * Create an array to specify the fields we want to display in
the * list (only the 'inggris,indonesia,jerman' column in this case) */
String[] from = new String[] { "inggris", "indonesia", "jerman" };
/* * and an array of the fields we want to bind those fieiplds to
(in * this case just the textView 'inggris,indonesia,jerman' from our new row.xml *
layout above) */
int[] to = new int[] {
R.id.inggris, R.id.indonesia, R.id.jerman };
/* Now create a simple cursor adapter.. */
adapter = new CustomCursorAdapter(this, R.layout.row, kamusCursor,
from, to);
// listView.setAdapter(adapter);
listContent.setAdapter(adapter);
}
catch (Exception e) {
e.printStackTrace(); }
finally {
if (db != null && db.isOpen()) {
db.close(); }
}
}
@Override
public void onDestroy() {
super.onDestroy();
try { kamusCursor.close();
}
catch (Exception e) {
}
}

protected class CustomCursorAdapter extends SimpleCursorAdapter {


private int layout;
private LayoutInflater inflater;
private Context context;
public CustomCursorAdapter(Context context,
int layout, Cursor c,
String[] from, int[] to) {
super (context, layout, c, from, to);
this.layout = layout;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
Log.d("NewView", "*****xxx");
View v = inflater.inflate(R.layout.row, parent, false);
return v;
}
@Override
public void bindView(View v, Context context, Cursor c) {
// 1 is the column where you're getting your data from
String inggris = c.getString(1);
String jerman = c.getString(3);
String indonesia = c.getString(2);
/** * Next set the name of the entry. */
TextView name_text = (TextView) v.findViewById(R.id.inggris);
TextView des_text = (TextView) v.findViewById(R.id.jerman);
TextView id_text = (TextView) v.findViewById(R.id.indonesia);
des_text.setText(jerman);
id_text.setText(indonesia);
if (name_text != null) {
name_text.setText(inggris);
}
}
}

10. Pada AndroidManifest.xml edit link seperti dibawah ini.


<activity
android:name="com.example.kamus.DaftarKata"
android:label="@string/app_name" >

11. Sekarang Run projectnya.


12. Jika sudah sukses menampilkan daftar kata dengan benar, Selamat, Anda sudah separuh jalan.
Selanjutnya kita akan menyediakan form untuk menambahkan kata.
Jika belum sukses, ulangi langkah 7.

13. Buat layout baru dengan nama tambahkata.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text = "Kamus Inggris Indonesia Jerman" />
<TextView
android:id="@+id/TextView01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Inggris :" >
</TextView>
<EditText
android:id="@+id/txtInggris"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" >
</EditText>
<TextView
android:id="@+id/TextView03"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Indonesia :" >
</TextView>
<EditText
android:id="@+id/txtIndonesia"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="" >
</EditText>
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text = "Jerman" >
</TextView>
<EditText
android:id="@+id/txtJerman"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</EditText>
<Button
android:id="@+id/btnTerjemah"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:onClick="saveData"
android:text = "Save Data" >
</Button>
</LinearLayout>

14. Buat class baru dengan nama TambahKata.java


package com.example.kamus;
import android.app.Activity;
import android.content.ContentValues;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class
public
public
public
public

TambahKata extends Activity{


static final String INGGRIS= "inggris";
static final String INDONESIA = "indonesia";
static final String JERMAN = "JERMAN";
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
datakamus = new DatabaseHelper(this);
db = datakamus.getWritableDatabase();
setContentView(R.layout.tambahkata);
txtInggris = (EditText) findViewById(R.id.txtInggris);
txtIndonesia = (EditText) findViewById(R.id.txtIndonesia);
txtJerman = (EditText) findViewById(R.id.txtJerman);
}
public void saveData(View view) {
String bhsindonesia = txtIndonesia.getText().toString();;
String bhsjerman= txtJerman.getText().toString();
String englishword = txtInggris.getText().toString();
ContentValues cv=new ContentValues();
cv.put(INGGRIS, englishword);
cv.put(INDONESIA, bhsindonesia);
cv.put(JERMAN, bhsjerman);
if (db.insert("kamus", INGGRIS, cv)>0){
Toast.makeText(getBaseContext(), "Save Data Success",
Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(getBaseContext(), "Save Data Fail",
Toast.LENGTH_SHORT).show();
}
}
@Override
public void onDestroy() {
super.onDestroy();
db.close();
}
}

15. Edit AndroidManifest.xml


<activity
android:name="com.example.kamus.TambahKata"
android:label="@string/app_name" >

16. Sekarang run projectnya.


17. Bagaimana hasilnya? apa harus rubah AndroidManifest.xml. Cara yang lebih baik adalah dengan
membuat menu yang dapat mengakses form Terjemahan, Daftar Kata dan Tambah Kata.

18. Caranya,,,? buat Class baru dengan nama MenuActivity.java lalu ketikkan kode berikut.
Masih ada error, perbaiki.
package com.example.kamus;
public class MenuActivity extends ListActivity {
String[] menuutama = new String[] { "Terjemah Kata", "Tambah Kata", "Daftar
Kata", "Keluar Aplikasi" };
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
// Menset nilai array ke dalam list adapater sehingga data pada array
// akan dimunculkan dalam list
this.setListAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, menuutama));
}
@Override
/**method ini akan mengoveride method onListItemClick yang ada pada class List
Activity
* * method ini akan d1ipanggil apabilai ada salah satu item dari list menu
yang dipilih */
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
// Menangkap nilai text yang dklik
Object o = this.getListAdapter().getItem(position);
String pilihan = o.toString();
// Menampilkan hasil pilihan menu dalam bentuk Toast
tampilkanPilihan(pilihan);
}
protected void tampilkanPilihan(String pilihan) {
try {
//Intent digunakan untuk sebagai pengenal suatu activity
Intent i = null;
if (pilihan.equals("Terjemah Kata"))
{
i = new Intent(this,MainActivity.class);
}
else if (pilihan.equals("Tambah Kata")) {
i = new Intent(this, TambahKata.class);
}
else if (pilihan.equals("Daftar Kata")) {
i = new Intent(this, DaftarKata.class);
}
else if (pilihan.equals("Keluar Aplikasi")) {
finish();
}
else {
Toast.makeText(this,"Anda Memilih: " + pilihan + " ,
Actionnya belum dibuat", Toast.LENGTH_LONG).show();
}
startActivity(i);
}
catch (Exception e) {
e.printStackTrace();
}
}
}

19. Edit pada AndroidManifest.xml


<activity
android:name="com.example.kamus.MenuActivity"
android:label="@string/app_name" >

20. Sekarang mari kita run projectnya


Klik masing-masing menu. Pastikan sudah berfungsi.
Sampai disini jika Anda sukses, Selamat, skor nilai UTS Anda dapat 80.

21. Sekarang kita melangkah ke bagian Ubah data dan Hapus data.
Pasti kita memikirkan bagaiman cara menempatkan Edit dan Hapus ini.
Aha kita letakan saja di DaftarKata. Jadi ketika satu baris kata di klik lama (long click) akan
memunculkan menu edit dan hapus. Sampai disini paham?
22. Buka file String.xml pada direktori res/value ketikan kode berikut
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Kamus</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="ok">OK</string>
<string name="save">Simpan</string>
<string name="cancel">Cancel</string>
<string name="add_title">Edit Kamus</string>
<string name="delete_title">Hapus Kamus, Anda yakin ?</string>
</resources>

23. Tambahkan layout untuk edit data beri nama edit.xml


Karena nilai 100 itu mahal, maka untuk lebih menguras waktu, pikiran dan tenaga. Buatlah layout lagi
dengan amati susunan grafik layout berikut.

Pastikan versi xml dan encoding tepat. Dan menggunakan Linear Layout
layout_width="fill_parent"
layout_height="fill_parent"
orientation="vertical"

Susunannya sebagai berikut:


Ingat, susunan berikut coding harus tepat, terutama id bersifat unik agar bisa dipanggil dalam class java.
1. <TextView
id="@+id/TextView01"
layout_width="wrap_content"
layout_height="wrap_content"
text = "Inggris :" >
</TextView>
2. <EditText
id="@+id/inggris"
layout_width="fill_parent"
layout_height="wrap_content"
text="" >
</EditText>
3. <TextView
id="@+id/TextView03"
layout_width="wrap_content"
layout_height="wrap_content"
text = "Indonesia :" >
</TextView>
4. <EditText
id="@+id/indonesia"
layout_width="fill_parent"
layout_height="wrap_content"
text="" >
</EditText>
5. <TextView
id="@+id/textView1"
layout_width="wrap_content"
layout_height="wrap_content"
text = "Jerman" >
</TextView>

6. <EditText
id="@+id/jerman"
layout_width="fill_parent"
layout_height="wrap_content" >
</EditText>
</LinearLayout>

24. Buka kembali file DaftarKata.java lalu edit dengan kode berikut
package com.example.kamus;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ContentValues;
import android.content.Context;
import android.content.DialogInterface;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
public class DaftarKata extends Activity {
private DatabaseHelper dbhelper;
private SQLiteDatabase db = null;
private ListView listContent = null;
private static final int EDIT_ID = Menu.FIRST + 1;
private static final int DELETE_ID = Menu.FIRST + 2;
private Cursor kamusCursor = null;
CustomCursorAdapter adapter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
dbhelper = new DatabaseHelper(this);
setContentView(R.layout.daftarkata);
listContent = (ListView) findViewById(R.id.list1);
isDataListView();
registerForContextMenu(listContent);
}
private void isDataListView() {
try {
db = dbhelper.getWritableDatabase();
kamusCursor = db.query("kamus", new String[] { "_id", "inggris",
"indonesia", "jerman" }, "_id>0", null, null, null, null);
/* * Create an array to specify the fields we want to display in the
* list (only the 'inggris,indonesia,jerman' column in this case) */
String[] from = new String[] { "inggris", "indonesia", "jerman" };
/* * and an array of the fields we want to bind those fieiplds to (in
* this case just the textView 'inggris,indonesia,jerman' from our * new row.xml layout
above) */
int[] to = new int[] { R.id.inggris, R.id.indonesia, R.id.jerman };
/* Now create a simple cursor adapter.. */
adapter = new CustomCursorAdapter(this, R.layout.row, kamusCursor,
from, to);
// listView.setAdapter(adapter);
listContent.setAdapter(adapter);
}

catch (Exception e) {
e.printStackTrace();
}
finally {if (db != null && db.isOpen()) {
// db.close();
}
}
}
@Override
public void onDestroy() {
super.onDestroy();
try { kamusCursor.close();
}
catch (Exception e) {
}
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
menu.add(Menu.NONE, DELETE_ID, Menu.NONE, "`Hapus")
.setIcon(R.drawable.ic_launcher).setAlphabeticShortcut('e');
menu.add(Menu.NONE, EDIT_ID, Menu.NONE, "Edit")
.setIcon(R.drawable.ic_launcher).setAlphabeticShortcut('d');
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case DELETE_ID: AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo) item .getMenuInfo();
delete(info.id);
return (true);
case EDIT_ID: AdapterView.AdapterContextMenuInfo infox =
(AdapterView.AdapterContextMenuInfo) item .getMenuInfo();
Cursor ckamusCursor = db.rawQuery( "SELECT _ID, inggris, indonesia, jerman
" + "FROM kamus where _ID=" + infox.id, null);
ckamusCursor.moveToFirst();
edit(infox.id, ckamusCursor.getString(1), ckamusCursor.getString(2),
ckamusCursor.getString(3));
return (true);
}
return (super.onOptionsItemSelected(item));
}
private void edit(long id, String pinggris, String pindonesia, String pjerman) {
LayoutInflater inflater = LayoutInflater.from(this);
View addView = inflater.inflate(R.layout.edit, null);
EditText edinggris = (EditText) addView.findViewById(R.id.inggris);
EditText edindonesia = (EditText) addView.findViewById(R.id.indonesia);
EditText edjerman = (EditText) addView.findViewById(R.id.jerman);
edinggris.setText(pinggris);
edindonesia.setText(pindonesia);
edjerman.setText(pjerman);
final DialogWrapper wrapper = new DialogWrapper(addView);
final long xid = id;
/* * wrapper.inggrisField.setText(pinggris);
* * wrapper.indonesiaField.setTag(pindonesia) */
new AlertDialog.Builder(this) .setTitle(R.string.add_title)
.setView(addView)
.setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{ processEdit(wrapper, xid);
}
})
.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton)
{
// ignore, just dismiss
}

}
).show();
}
private void delete(final long rowId) {
if (rowId > 0) {
new AlertDialog.Builder(this)
.setTitle(R.string.delete_title)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener()
{

public void onClick(DialogInterface dialog, int whichButton) {


processDelete(rowId);
}
})
.setNegativeButton(R.string.cancel, new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// ignore, just dismiss
}
}).show();
}
}
private void processEdit(DialogWrapper wrapper, long id) {
ContentValues values = new ContentValues(2);
values.put("inggris", wrapper.getinggris());
values.put("indonesia", wrapper.getindonesia());
values.put("jerman", wrapper.getjerman());
// db.update(table, values, whereClause, whereArgs)
db.update("kamus", values, "_id=" + id, null);
kamusCursor.requery ();
}
private void processDelete(long rowId) {
String[] args = { String.valueOf(rowId) };
db.delete("kamus", "_ID=?", args);
kamusCursor.requery ();
}
class DialogWrapper { EditText inggrisField = null;
EditText indonesiaField = null;
EditText jermanField = null;
View base = null;
DialogWrapper(View base) {
this.base = base;
indonesiaField = (EditText) base.findViewById(R.id.indonesia);
}
String getinggris() {
return (getinggrisField().getText().toString());
}
String getindonesia() {
return (getindonesiaField().getText().toString());
}
String getjerman() {
return (getjermanField().getText().toString());
}
private EditText getinggrisField() {
if (inggrisField == null) {
inggrisField = (EditText)
base.findViewById(R.id.inggris);
}
return (inggrisField);
}
private EditText getindonesiaField() {
if (indonesiaField == null) {
indonesiaField = (EditText)
base.findViewById(R.id.indonesia);
}
return (indonesiaField);
}

private EditText getjermanField() {


if (jermanField == null) {
jermanField = (EditText)
base.findViewById(R.id.jerman);
}
return (jermanField);
}
}
protected class CustomCursorAdapter extends SimpleCursorAdapter {
private int layout;
private LayoutInflater inflater;
private Context context;
public CustomCursorAdapter(Context context, int layout, Cursor c, String[]
from, int[] to)
{
super (context, layout, c, from, to);
this.layout = layout;
this.context = context;
inflater = LayoutInflater.from(context);
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent){
View v = inflater.inflate(R.layout.row, parent, false);
return v;
}
@Override
public void bindView(View v, Context context, Cursor c) {
// 1 is the column where you're getting your data from
String inggris = c.getString(1);
String jerman = c.getString(3);
String indonesia = c.getString(2);
/** * Next set the name of the entry. */
TextView name_text = (TextView) v.findViewById(R.id.inggris);
TextView des_text = (TextView) v.findViewById(R.id.jerman);
TextView id_text = (TextView) v.findViewById(R.id.indonesia);
des_text.setText(jerman);
id_text.setText(indonesia);
if (name_text != null) { name_text.setText(inggris);
}
}
}
}

25. Run Programnya. Jika sukses, SELAMAT. Anda mendapat nilai UTS 100.

Anda mungkin juga menyukai