onContextItemSelected从不使用带有ListView的Dialog调用

fer*_*jsg 4 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);  
Run Code Online (Sandbox Code Playgroud)

然后我只添加一个简单的项目:

@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");
}
Run Code Online (Sandbox Code Playgroud)

最后我重写了onContextItemSelected:

@Override
public boolean onContextItemSelected(MenuItem item) {
 super.onContextItemSelected(item);
    editSong();
    return true; 
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,当我长按listview时,我得到了上下文菜单,但在点击它上面的唯一选项后,它从不调用onContextItemSelected :(任何帮助?

PS:我也试过覆盖onMenuItemSelected,onOptionsItemSelected,但我得到了相同的结果:\永远不会被调用.

Che*_*mon 6

我不确定你为什么没有工作,但你可以尝试添加一个监听器到你的menuItem:setOnMenuItemClickListener.至少会告诉您正在选择上下文菜单项.