The following code shows how to Load data from Database to ListView.
Main layout activity_main.xml file
<?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"> <EditText android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/add" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Add New Person" /> <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="fill_parent" /> </LinearLayout>
Main activity Java code
package com.java2s.myapplication3.app; //from www . j a v a 2 s . c o m import java.text.SimpleDateFormat; import java.util.Date; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleCursorAdapter; import java.text.SimpleDateFormat; import java.util.Date; import android.content.ContentValues; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class MainActivity extends Activity implements View.OnClickListener, AdapterView.OnItemClickListener { EditText mText; Button mAdd; ListView mList; MyDbHelper mHelper; SQLiteDatabase mDb; Cursor mCursor; SimpleCursorAdapter mAdapter; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mText = (EditText)findViewById(R.id.name); mAdd = (Button)findViewById(R.id.add); mAdd.setOnClickListener(this); mList = (ListView)findViewById(R.id.list); mList.setOnItemClickListener(this); mHelper = new MyDbHelper(this); } @Override public void onResume() { super.onResume(); mDb = mHelper.getWritableDatabase(); String[] columns = new String[] {"_id", MyDbHelper.COL_NAME, MyDbHelper.COL_DATE}; mCursor = mDb.query(MyDbHelper.TABLE_NAME, columns, null, null, null, null, null, null); String[] headers = new String[] {MyDbHelper.COL_NAME, MyDbHelper.COL_DATE}; mAdapter = new SimpleCursorAdapter(this, android.R.layout.two_line_list_item, mCursor, headers, new int[]{android.R.id.text1, android.R.id.text2}); mList.setAdapter(mAdapter); } @Override public void onPause() { super.onPause(); mDb.close(); mCursor.close(); } @Override public void onClick(View v) { ContentValues cv = new ContentValues(2); cv.put(MyDbHelper.COL_NAME, mText.getText().toString()); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); cv.put(MyDbHelper.COL_DATE, dateFormat.format(new Date())); //Insert 'now' as the date mDb.insert(MyDbHelper.TABLE_NAME, null, cv); mCursor.requery(); mAdapter.notifyDataSetChanged(); mText.setText(null); } @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { mCursor.moveToPosition(position); String rowId = mCursor.getString(0); //Column 0 of the cursor is the id mDb.delete(MyDbHelper.TABLE_NAME, "_id = ?", new String[]{rowId}); mCursor.requery(); mAdapter.notifyDataSetChanged(); } } class MyDbHelper extends SQLiteOpenHelper { private static final String DB_NAME = "mydb"; private static final int DB_VERSION = 1; public static final String TABLE_NAME = "people"; public static final String COL_NAME = "pName"; public static final String COL_DATE = "pDate"; private static final String STRING_CREATE = "CREATE TABLE "+TABLE_NAME+" (_id INTEGER PRIMARY KEY AUTOINCREMENT, " +COL_NAME+" TEXT, "+COL_DATE+" DATE);"; public MyDbHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(STRING_CREATE); ContentValues cv = new ContentValues(2); cv.put(COL_NAME, "Jack"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); cv.put(COL_DATE, dateFormat.format(new Date())); //Insert 'now' as the date db.insert(TABLE_NAME, null, cv); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME); onCreate(db); } }