ListView和适配器-显示数据库数据
- 格式:docx
- 大小:16.54 KB
- 文档页数:3
ListView显示数据库数据
ListView的2个关键点:
1、可自定义layout布局
2、可使用SimpleCursorAdapter适配器填充:(用于显示数据库数据)该适配器允许绑定一个Cursor的columns到ListView自定义的布局中的TextView或ImageView组件上。
创建SimpleCursorAdapter:
创建方法:
String[ ] from = { "_id", "name", "age" };
int[ ] to = { R.id.txtID, R.id.txtName, R.id.txtAge }; SimpleCursorAdapter adapter =
new SimpleCursorAdapter(this, yout.listview, cursor, from, to);
//from:要显示的Cursor的列
//to:显示数据的组件id
//this:上下文
//yout.listview:自定义的ListView布局
//cursor:select查询返回的cursor
特别注意:SimpleCursorAdapter要求返回的结果集cursor中必须包含_id字段,所以需要对取得结果集进行处理特殊处理一下。
主要代码:
DBOpenHelper helper = new DBOpenHelper(getApplicationContext(), "test.db", null,1);
SQLiteDatabase db=helper.getWritableDatabase();
Cursor cursor = db.rawQuery( "SELECT id as _id, name,age
FROM person",null);
String[] from = { "_id", "name", "age" };
int[] to = { R.id.txtID, R.id.txtName, R.id.txtAge }; SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, yout.listview, cursor, from, to);
//cursor.close();
//不能使用cursor.close(),否则SimpleCursorAdapter将不能从中读取数据显示ListView li=(ListView)findViewById(R.id.listView1);
li.setAdapter(adapter);
关键点:如何得到选中行的id值以及其他字段值
⏹首先获取ListView的选中行对象:
AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo)item.getMenuInfo();
//item是onContextItemSelected方法中的参数(MenuItem)
⏹然后使用上面的info对象:
⏹info.id属性:获得SimpleCursorAdaptor中_id序号值(即
记录id值)
info.targetView属性:获得选中行对象中的Views集合://(TextView)info.targetView.findViewById(R.id.××):可得到当前选中行中的某个TextView元素。