我有一个 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));
}
});
假设我的数据库列如下:
id, name, surname, dob, height, gender, placeOfBirth, maritalStatus.
但是,我在我的 ListView (row.xml) 中只显示姓名。 但是,每当用户点击列表中的某一行时,我也想检索其余数据,例如,点击的行的 ID 或性别。
问题是,我没有在列表中显示数据库行中的所有信息,但是,当用户按下列表时,我需要检索该列表的一些数据。我怎样才能在这里做到这一点?
下面的方法不起作用,因为我不在 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...
}
最佳答案
OnItemClickListener
中的arg0
参数是 ListView
。但是,您可以这样做
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View view, int position, long id) {
// This will get the cursor from the adapter, already moved to position
Cursor cursor = (Cursor) mCursorAdapter.getItem(position)
//get the data...
}
});
关于android - 无法从游标适配器获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19210446/