android - onContextItemSelected 从未使用带有 ListView 的对话框调用

标签 android

我正在创建一个带有 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/

相关文章:

java - Libgdx、TextureAtlas(.pack) 通过 AssetManager

android - 如何在 Android 应用程序中创建动态图像

android - Geny 运动 v2.4.0。未找到虚拟化引擎。插件加载中止

android - 无法解析方法 getLayoutInflater

Android - 将外部库添加到项目

android - 在 cordova 的 visual studio 工具中嵌入 youtube 视频

php - 在 Windows 中的 apache 上运行 exec

android - RelativeLayout 中的填充问题

android - 在 Android 应用程序中推送通知

android - Facebook API 是否允许发送和接受好友请求?