lv1 = (ListView)findViewById(R.id.lv1);
db = openOrCreateDatabase("db1.db",MODE_PRIVATE,null);
Cursor cursor = db.rawQuery("select _id, name, phone from mytable",null);
if (cursor != null && cursor.getCount() >= 0) {
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, new String[]{"name", "phone"}, new int[]{android.R.id.text1, android.R.id.text2}, 0);
lv1.setAdapter(adapter);
}
但預設的simple_list_item_2只能放二個欄位,但我有三個欄位要顯示的話,該怎麼辦呢??
有一個取巧的方法,在SQL的語法上動手腳,範例如下
lv1 = (ListView)findViewById(R.id.lv1);
db = openOrCreateDatabase("db1.db",MODE_PRIVATE,null);
Cursor cursor = db.rawQuery("select _id, _id||'.'||name sname, phone from mytable",null);
if (cursor != null && cursor.getCount() >= 0) {
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, new String[]{"sname", "phone"}, new int[]{android.R.id.text1, android.R.id.text2}, 0);
lv1.setAdapter(adapter);
}
如果我們使用button或其他元件改變SQLite的內容後,要即時顯示改變後的內容,做法如下
cursor.requery();
lv1.setAdapter(adapter);
當我們將SQLite的資料放到listview裡面,有些情況會需要點listview的item時將資料抽出,這時的做法是
lv1.setOnItemClickListener(itemClickListener); //這行放到onCreate()裡