
[英]Android open ContextMenu on short click + pass item clicked details
[英]Open another ContextMenu when clicked on first ContextMenu's Item
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
項目
當我點擊第一個ContextMenu的項目時,如何顯示另一個ContextMenu?
我不知道你希望ContextMenu
有多深,但是對於兩個級別你可以有一個布爾標志,在兩種情況之間進行選擇,這將從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
來為用戶提供一個后台循環)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.