gpt4 book ai didi

android - 单击第一个 ContextMenu 的 Item 时打开另一个 ContextMenu

转载 作者:行者123 更新时间:2023-11-29 16:11:57 26 4
gpt4 key购买 nike

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

最佳答案

How to show another ContextMenu when i click an Item of the 1st ContextMenu??

我不知道您希望 ContextMenu 有多深,但是对于两个级别,您可以有一个 bool 标志,以在两种情况之间进行选择,这将从 onContextItemSelected 更新:

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 来为用户提供循环浏览的后台堆栈)。

关于android - 单击第一个 ContextMenu 的 Item 时打开另一个 ContextMenu,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12401143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com