registerForContextMenu(validate_button);
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
menu.add("It's right");
menu.add("It's wrong");
}
@Override
public boolean onContextItemSelected(android.view.MenuItem item) {
//i want to show another Context Menu to select next answer
return true;
}
当我点击第一个ContextMenu
的项目时如何显示另一个ContextMenu
。
类似于提问者,您可以从ContextMenu
项目中选择答案,具体取决于必须填充的下一个ContextMenu
项目
答案 0 :(得分:4)
单击第1个项目时如何显示另一个ContextMenu 文本菜单??
我不知道你希望ContextMenu
有多深,但是对于两个级别你可以有一个布尔标志,在两种情况之间进行选择,这将从onContextItemSelected
更新:< / p>
boolean flag = true;
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenu.ContextMenuInfo menuInfo) {
if (flag) {
menu.add("It's right");
menu.add("It's wrong");
} else {
// the second menu
menu.add("Ha Ha");
}
}
然后在onContexItemSelected
回调中,只需更新标记并发布Runnable再次显示ContextMenu
:
@Override
public boolean onContextItemSelected(MenuItem item) {
if (item.getItemId() == theIdOfItemFromSecondContextMenu) {
// do stuff
return true;
}
// if you pass at this level, then you need to show the second ContextMenu
flag = false;
theView.post(new Runnable() {
@Override
public void run() {
theView.showContextMenu();
}
});
return true;
}
无论如何,我会建议不要使用这样的代码,只需使用自定义的Dialog
(或DialogFragment
来为用户提供一个后台进行循环播放。)