嘿伙计们,我正在关注Android市场上的'Diaro'和'my Diary'应用程序。
项目将显示在列表视图中,并且在长按项目时,会打开包含各种选项(如编辑,删除等)的上下文菜单。我尝试在我的应用程序中实现相同的功能,这是类似的。但问题出在onContextItemSelected(MenuItem item)
我无法获得点击项目的内容。这是onContextItemSelected(MenuItem item)
的代码:
@Override
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item
.getMenuInfo();
switch (item.getItemId()) {
case R.id.edit:
break;v
// rest of the codetion
}
return super.onContextItemSelected(item);
}
有人可以告诉我如何从此功能中获取列表视图中单击项目的ID?我真的可以在这里使用一些帮助:)
答案 0 :(得分:3)
您必须为contextMenu注册yourView,如下所示:
list = getListView();
registerForContextMenu(list);
并且必须使用onCreateContextMenu来构建它
@Override
public void onCreateContextMenu(ContextMenu contextMenu,
View v,
ContextMenu.ContextMenuInfo menuInfo) {
AdapterView.AdapterContextMenuInfo info =
(AdapterView.AdapterContextMenuInfo) menuInfo;
selectedWord = ((TextView) info.targetView).getText().toString();
selectedWordId = info.id;
contextMenu.setHeaderTitle(selectedWord);
contextMenu.add(0, CONTEXT_MENU_EDIT_ITEM, 0, R.string.edit);
contextMenu.add(0, CONTEXT_MENU_DELETE_ITEM, 1, R.string.delete);
}
你的contextMenu标题中有listView项,而它在selectedWordId中是id
了解更多信息,请参阅此链接:Detecting which selected item (in a ListView) spawned the ContextMenu (Android)
答案 1 :(得分:0)
我有一段时间遇到同样的问题,发现我在我的活动中有onMenuitemselected(),这是在听上下文菜单项而不是在contextitemselected()上,希望这有帮助。