【发布时间】:2013-01-23 18:38:55
【问题描述】:
我有一个带有 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));
}
上下文菜单现在不起作用,因为未设置位置变量。我真的不知道如何获取所选项目。
提前致谢。
【问题讨论】: