Beruntung android sudah meyertakan API SQLite jadi kita tidak perlu mendownload API nya lagi, lets we begin.
Project Struktur
Pertama kita buat databasenya beri nama DatabaseHelper.java
package com.samz.sqlite; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "employee_directory"; private final static String TABLES[] = { "id","name" }; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { } public void createEmployeeTable(SQLiteDatabase db) { db.execSQL("CREATE TABLE if not exists employee (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT);"); } public void insertData(SQLiteDatabase db, String name) { ContentValues contentValues = new ContentValues(); contentValues.put("Name", name); db.insert("employee", null, contentValues); } public void editData(SQLiteDatabase db, String name) { ContentValues contentValues = new ContentValues(); contentValues.put("name", name); db.update("employee", contentValues, "name =" + name, null); } public void deleteData(SQLiteDatabase db, String name) { db.delete("employee", "name =" + name, null); } public Cursor getAll(SQLiteDatabase db) { return db.query("employee", TABLES, null, null, null, null, null); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { //db.execSQL("DROP TABLE IF EXISTS employee"); //onCreate(db); } }
Lalu kita buat UI-nya, disini kita masukan TextBox, Button simpan dan ListView (untuk menampilkan data)
modifikasi main.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" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <TextView android:id="@+id/idText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="test" android:visibility="gone"/> <EditText android:id="@+id/nameText" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:hint="@string/name" > </EditText> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <Button android:id="@+id/btnSave" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/save" > </Button> <Button android:id="@+id/btnUpdate" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/update" > </Button> </LinearLayout> <ListView android:id="@android:id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" > </ListView> </LinearLayout>Pada code diatas terlihat android:text="@string/save ini mangacu pada file strings.xml untuk mencegah hardcode, file srings.xml
Nama Simpan SQLite Test
Lalu disinilah logic nya
ListViewActivity.java
package com.samz.sqlite; import java.util.ArrayList; import java.util.Collections; import java.util.List; import android.app.ListActivity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ListAdapter; import android.widget.Toast; public class ListViewActivity extends ListActivity { protected EditText nameText; protected Button btnSave; protected SQLiteDatabase db; protected DatabaseHelper dbHelper; protected ListAdapter adapter; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); dbHelper = new DatabaseHelper(this); db = dbHelper.getWritableDatabase(); dbHelper.createEmployeeTable(db); nameText = (EditText) findViewById(R.id.nameText); btnSave = (Button) findViewById(R.id.btnSave); getAll(); buttonEvenListener(); } private void buttonEvenListener() { btnSave.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub String names = nameText.getText().toString().trim(); dbHelper.insertData(db, names); Toast.makeText(ListViewActivity.this, "Success", Toast.LENGTH_SHORT).show(); nameText.setText(""); getAll(); } }); } private void getAll() { ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getAllDatas()); setListAdapter(adapter); } public List<String> getAllDatas() { List<String> names = new ArrayList<String>(); Cursor cursor = dbHelper.getAll(db); cursor.moveToFirst(); while (!cursor.isAfterLast()) { String name = cursor.getString(1); names.add(name); cursor.moveToNext(); } // close cursor cursor.close(); Collections.sort(names); return names; } }
Run, Run As "Android Application", lalu akan muncul sebagai berikut
Untuk dapat melihat data yang sudah tersimpan, kita dapat melihatnya di SQLite Manager ini digunakan pada browser firefox. Link untuk adds on SQLite Manager mozilla disini atau dapat dibrowse langsung dari mozilla. Setelah selesai di install untuk membuka aplikasinya pilih di mozilla menu Tools > SQLite Manager, akan tampil sbb
Bagaimana cara mengunakannya? pertama Pull database terlebih dahulu Open perspective di eclipse lalu Window > Show View > Other > Android lalu pilih File Explorer, database tersimpan di folder /data/data/your.app.package/databases/your-db-name lalu klik dipojok kanan atas Pull a file from a device lalu Save.
Selesai disave pada SQLite Manager pilih Database > Connect Database pilih file yang di Pull
Selamat Mencoba semoga bermanfaat
Download Source Code disini
Kunjungi situs kami di PT Samz Solution
Tidak ada komentar:
Posting Komentar