About Me

Agus Haryanto,
Android Trainner,
GoogleMaps (JavaScript) Trainer
JQuery and JQuery Mobile Trainer
Java, Java Script and PHP Trainer
Freelance Developer Android
Freelance Developer Blackberry
Freelance Developer Web (GIS Googlemaps)
Freelance Developer SMS Gateway

jika ingin contact saya bisa emali ke agus.superwriter@gmail.com

ym: agus_h23

Facebook : Agus Haryanto


Article

Belajar Android ListView dengan database sqlite

Belajar Android lagi yuk,  Kalau pada tutorial yang lalu kita sudah berhasil mebuat Spinner yang isinya diambil dari database, rasanya alan terasa lebih mantap jika kita dapat membuat listview yang isinya juga diambil dari database, kalau bahasa jawanya “populate listview from sqlite database”

Sekarang mari kita ikuti langkah-langkah berikut ini.

1. Buat Project dengan nama “ListViewSQlite”

2. Edit file main.xml, lalu ketikkan kode berikut.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  >
<TextView
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:text="Daftar Tempat Wisata"
  />
<ListView
android:id="@+id/wisatalist"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</LinearLayout>

3. Pada directory layout, buat file baru dengan nama “row.xml”, lalau ketikkan kode berikut.

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/txtwisata"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip"/>

4. Pada direktori src, buat file (class) baru dengan nama “DatabaseHelper.java” lalu ketikkan kode berikut.

package com.agusharyanto.net.lvsqlite;

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 {
	private static final String DATABASE_NAME = "dbwisata";
	public static final String NAMA = "nama";
	public static final String KEY_ID = "_id";

	public DatabaseHelper(Context context) {
		super(context, DATABASE_NAME, null, 1);
	}

	// method createTable untuk membuat table WISATA
	public void createTable(SQLiteDatabase db) {
		db.execSQL("DROP TABLE IF EXISTS WISATA");
		db.execSQL("CREATE TABLE if not exists WISATA (_id INTEGER PRIMARY KEY AUTOINCREMENT, "
				+ "nama TEXT);");
	}

	// method generateData untuk mengisikan data ke table Wisata.
	public void generateData(SQLiteDatabase db) {
		ContentValues cv = new ContentValues();
		cv.put(NAMA, "Ancol");
		db.insert("WISATA", NAMA, cv);
		cv.put(NAMA, "Ragunan");
		db.insert("WISATA", NAMA, cv);
		cv.put(NAMA, "Taman Mini");
		db.insert("WISATA", NAMA, cv);
	}

	// method delAllAdata untuk menghapus data di table Wisata.
	public void delAllData(SQLiteDatabase db) {
		db.delete("WISATA", null, null);
	}

	public Cursor fetchAllWisata(SQLiteDatabase db) {
		return db.query("WISATA", new String[] { KEY_ID, NAMA }, null, null,
				null, null, null);
	}

	@Override
	public void onCreate(SQLiteDatabase db) {
		createTable(db);

	}

	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		// TODO Auto-generated method stub

	}
}



5. Edit File “ListViewSQliteActivity.java” dan ektikkan kode berikut

package com.agusharyanto.net.lvsqlite;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class ListViewSQliteActivity extends Activity {
	private DatabaseHelper dbhelper;
	private SQLiteDatabase db = null;
	private ListView listContent = null;
    /** Called when the activity is first created. */
    @Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		dbhelper = new DatabaseHelper(this);
		db = dbhelper.getWritableDatabase();
		dbhelper.delAllData(db);
		dbhelper.generateData(db);
		setContentView(R.layout.main);
		listContent = (ListView) findViewById(R.id.wisatalist);
		isDataListView();
	}

    private void isDataListView() {
    	Cursor wisataCursor;

    	wisataCursor = dbhelper.fetchAllWisata(db);

    	startManagingCursor( wisataCursor);
    	/*Create an array to specify the fields we want to display in the list (only the 'NAMA' column in this case) */
    	String[] from = new String[]{dbhelper.NAMA};
    	/* and an array of the fields we want to bind those fields to (in this case just the textView 'txtwisata' from our new row.xml layout above) */
    	int[] to = new int[]{R.id.txtwisata};

    	/* Now create a simple cursor adapter.. */
    	SimpleCursorAdapter wisataAdapter =
    	new SimpleCursorAdapter(this, R.layout.row, wisataCursor, from, to);

    	/* and assign it to our Spinner widget */
    	listContent.setAdapter(wisataAdapter);
    	}

    @Override
	public void onDestroy() {
		super.onDestroy();
		try {
			db.close();
		}catch (Exception e){

		}
	}

}

6. Kita telah menyelesaikan semuanya, sekarang mari kita run projectnya, jika semu saudah benar, maka hasilnya akan seperti ini

I challenge you to make your life a masterpiece. I challenge you to join the ranks of those people who live what they teach, who walk their talk. (Tony Robins)

untuk source code lengkapnya
Semoga Bermanfaat Salam Hangat Agus Haryanto
Share

14 comments to Belajar Android ListView dengan database sqlite

  • dodong

    mas bagian listContent.setAdapter(wisataAdapter);
    wisataAdapter darimana yach? udah dicari apa saya yang bingung atau gimana?

  • adi

    mas kalo pencarian tapi di tampilkan dalam bentuk listview gmn????datanya diambil dari database

  • pak agus, kalo ada keterangan kaya gini knp yah “08:57:05 – ListViewSQlite] Android requires compiler compliance level 5.0 or 6.0. Found ‘1.7′ instead. Please use Android Tools > Fix Project Properties.”
    atau sperti ini screenshot nya ====> http://i47.tinypic.com/wvpzqr.png

    saya sering import langsung, kejadiannya kadang-kadang kaya gitu pak :(
    mohon masukan nya yah :D

    Thanks.

  • pemula

    Kok ga di jelasin Fungsi2 fungsi penting dari koding nya.
    ini mah bukan belajar.. tapi di suapin.. haahhaa

  • nanang

    gak tau kenapa ?
    kesel sama orang2 yang komen menjatuhkan kayak atas ane..

  • gun

    Mas. Bs dibuatkan tutorial android ttg database relational dg sqlite?

  • icha

    mas, ini kan hanya menampilkan data.
    kalo listviewnya dijadikan menu bagaimana caranya mas? data tetap diambil dari database.
    jd bisa di klik dan pindah ke halaman lain.
    mohon bantuannya..
    terima kasih..

  • mas itu kalo masukkin datanya kan 1 per 1 kan?
    ada gak tutorial yg datanya dimasukkin pake sqlite browser nanti databasenya dipanggil di javanya?karna kan sedikit ribet tuh kalo dimasukkan kata 1 per 1..
    mohon bantuannya..
    makasih

  • mas agus,
    saya mau nannya nih kenapa kalo list viewnya kalo di drag gitu jadi warna item gitu?apa mesti di pakein scroll gitu.
    makasi

  • Pak Agus, coding diatas sudah saya buat dan bisa jalan.
    Tapi saya mau tanya gimana caranya menambahkan agar listview itu bisa untuk menampilkan class yang lain.
    saya sudah coba pake intent tapi ga bisa2.
    mohon pencerahannya pak.

  • yogi

    mas bisa gak posting judul tugas akhir yang berbasis android

  • Laura

    Mas kalau mau buat listview-nya bisa di klik truz ke class dan menampilkan layout lain gimana caranya ? :)

  • Ella

    pak,,, kalo masukkin file suara ke sqlitenya gmna pak,,, supaya biar dipanggil lewat listview nya,,, trimakasih mohon pencerahannya

  • Angga SAputra

    semua yang mas agus berikan selalu bermanfaat. makasi ya mas!!

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Spam protection by WP Captcha-Free