我有一个带有 listView 的应用程序,我在其中设置了我的 sqlite 数据库中的数据。我的 CustomCursorAdapter 将数据(来自 DBAdapter)放在列表视图中。我想从我的 listView 中获取所选项目的项目 ID,我通过以下代码使其工作:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> listView, View view,
int position, long id) {
// Get the cursor, positioned to the corresponding row in the result set
Cursor cursor = (Cursor) listView.getItemAtPosition(position);
//Get it from the database.
String countryCode =
cursor.getString(cursor.getColumnIndex(cursor.getColumnName(0)));
Toast.makeText(getApplicationContext(),
countryCode, Toast.LENGTH_SHORT).show();
}
});
该代码确实获得了 ID 并敬酒,我可以在其中看到 ID。这完美地工作。现在我想把它放在一个上下文菜单中,我在其中长按该项目(所以这个方法不会启动)。我有使用项目的上下文菜单,但我只需要获取列表视图中被选中的项目的 ID。
这是我的上下文菜单代码:
public boolean onContextItemSelected(MenuItem item) {
Cursor cursor = (Cursor) listView.getItemAtPosition(position);
String countryCode =
cursor.getString(cursor.getColumnIndex(cursor.getColumnName(0)));
switch (item.getItemId()) {
case CONTEXT_MENU_DELETE_ITEM:
Toast.makeText(getApplicationContext(),
countryCode, Toast.LENGTH_SHORT).show();
return(true);
case CONTEXT_MENU_UPDATE:
return(true);
}
return(super.onOptionsItemSelected(item));
}
上下文菜单现在不起作用,因为未设置位置变量。我真的不知道如何获得选定的项目。
提前致谢。