在Android开发中,如果用到了Sqlite,那么最好和ContentProvider结合使用。这样数据库的生命周期就不用自己操心了。然后,如果要在比如ListView中显示,可以使用CursorAdapter。简化的办法是使用子类SimpleCursorAdapter。以下就介绍一下使用sqlite+cursor adapter的最简单实现示例。代码如下:
ContactDAO contactDAO = new ContactDAO(this);
Cursor c = contactDAO.export();
String[] from = new String[]{"name", "phone"};
int[] to = new int[]{android.R.id.text1, android.R.id.text2};
listView = (ListView)findViewById(R.id.listView);
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1, c, from, to, 1);
listView.setAdapter(adapter);
public Cursor export(){//导出
Cursor cursor = db.rawQuery("select name, phone from contact", null);
return cursor;
}
但是这样做会报错
应该改成这样:
ContactDAO contactDAO = new ContactDAO(this);
Cursor c = contactDAO.export();
String[] from = new String[]{"_id", "phone"};
int[] to = new int[]{android.R.id.text1, android.R.id.text2};
listView = (ListView)findViewById(R.id.listView);
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1, c, from, to, 1);
listView.setAdapter(adapter);
public Cursor export(){//导出
Cursor cursor = db.rawQuery("select name AS _id, phone from contact", null);
return cursor;
}
(注意红色部分)
具体解释在这里点击打开链接