我正在创建一个带有 ListView 的简单对话框。我希望能够访问它的上下文菜单。 这是我的基本代码:
<On CreateDialog>
listViewSongs=(ListView) layout.findViewById(R.id.ListView_Songs);
listViewSongs.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, drawingPanel.metronome.getSongNames()));
registerForContextMenu(listViewSongs);
然后我只添加一个简单的项目:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo)
{
super.onCreateContextMenu(menu, v, menuInfo);
menu.setHeaderTitle("Sample Context Menu");
menu.add(0, MENU_EDIT_SONG, 0, "Edit");
}
最后我覆盖了 onContextItemSelected:
@Override
public boolean onContextItemSelected(MenuItem item) {
super.onContextItemSelected(item);
editSong();
return true;
}
所以我的问题是,当我长按 ListView 时,我得到了上下文菜单,但是在单击它上面的唯一选项后,它从不调用 onContextItemSelected :( 有帮助吗?
PS:我也尝试过覆盖 onMenuItemSelected、onOptionsItemSelected,但我得到了相同的结果:\从未被调用。
最佳答案
我不确定为什么你所拥有的不起作用,但你可以尝试向你的 menuItem 添加一个监听器:setOnMenuItemClickListener .至少这会告诉您上下文菜单项已被选中。
关于android - onContextItemSelected 从未使用带有 ListView 的对话框调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4017264/