【发布时间】:2013-10-06 15:25:26
【问题描述】:
我有一个ListView(在Activity 中而不是在ListActivity 中),它利用自定义游标适配器从我的本地数据库中获取一些数据并将它们显示在ListView 中。
lv.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long id)
{
Log.i(tag, "position = " + position);
Log.i(tag, "id is : " + id));
}
});
假设我的数据库列如下:
身份证、姓名、姓氏、出生日期、身高、性别、出生地、婚姻状况。
但是,我在列表视图 (row.xml) 中只显示姓名和姓氏。 但每当用户点击列表中的某一行时,我也想检索其余数据,例如,所点击行的 id 或性别。
问题是,我没有显示列表中 db 行的所有信息,但是,当用户按下列表时,我需要检索该列表的一些数据。我该怎么做呢?
下面的方法不起作用,因为我不在ListActivity,只是Activity。
public void onListItemClick(ListView l, View v, int position, long id)
{
super.onListItemClick(l, v, position, id);
Cursor c = ((SimpleCursorAdapter)l.getAdapter()).getCursor();
c.moveToPosition(position);
//get the data...
}
【问题讨论】:
-
我不完全理解你问题的第一部分。关于第二部分:你不需要 ListActivity。只需将您的适配器存储为 Activity 类或 Fragment 的数据成员。
-
@NobuGames 我更新了问题看看。
标签: android sqlite android-listview cursor android-cursoradapter