我正在使用
显示来自SQLite的数据ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
employees,
new String[] {"FirstName","LastName"},
new int[] {android.R.id.text1,android.R.id.text2},0);
getListView().setAdapter(adapter);
empoyees - 我的光标。
数据显示正确,但如何获取我从SQLite使用哪一行对List中的项目进行OnClick? 例如,我有2个表
1)Category
_id Integer
Name Text
2)Articles
_id Integer
Name text
CategoryId (foreing key)
所以在第一个屏幕上我显示所有分类,然后在列表项目上单击我想显示来自指定类别的文章,该怎么做?
答案 0 :(得分:1)
请勿在适配器中使用光标。构建一个数组并发送数组。在该数组中,通常类似List<MyDataRecordHolder>
(其中MyDataRecordHolder是您创建的对象并填充数据库中的数据),您必须设置对行ID的引用。
更新:
创建MyDataRecordHolder :(伪代码)
List<MyDataRecordHolder> list = new List<MyDataRecordHolder>();
在您获取数据的循环中:
MyDataRecordHolder record = new MyDataRecordHolder();
record.setId(cursor.get("rowid"))
//set any other pertinent data
list.add(record);
适用于您的适配器:
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_2,
list,
new String[] {"FirstName","LastName"},
new int[] {android.R.id.text1,android.R.id.text2},0);
注意,您现在正在向适配器提供列表(列表)。
在适用于您的行的OnClick中,您将获得当前的MyDataRecordHolder:
final MyRecordHolder record = getItem(position);
String id = record.getId();
//make new db query based on your id