gpt4 book ai didi

java - 我需要在给定条件下从弹出菜单中隐藏/显示特定项目

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

我试过了 this solution ,但它没有像我预期的那样工作。
这是我的代码,这是我试过的。

PopupMenu popup = new PopupMenu(TableActivity.this, view);
popup.setOnMenuItemClickListener(TableActivity.this);
menu = popup.getMenu();
popup.inflate(R.menu.popup_shift);
popup.show();
popup.setOnMenuItemClickListener(this);

@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_merge:
if(tableDbList.get(positionShift).getMergeTableId()== 0) {
//this is the condition to show/hide popup menuitem
popup.getMenu().findItem(R.id.menu_merge).setVisible(false);
}else {
checkPinCode.checkPinCodemethod(TableActivity.this, "mergeCancel");
}
}
return true;
}

最佳答案

您正在尝试更改MenuItem 上的可见性 单击 。它会工作,但 popupMenu 将在点击后立即消失。所以这没有任何意义。如果您的要求是在某些情况下显示项目,您应该在 show() 之前设置可见性。下面是一个简单的例子。

  private void showPopup() {
final PopupMenu popup = new PopupMenu(MainActivity.this, view);
popup.getMenuInflater().inflate(R.menu.popup_shift, popup.getMenu());
if(someCondition){
popup.getMenu().findItem(R.id.menu_merge).setVisible(false);
}
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(MainActivity.this, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
popup.show();
}

关于java - 我需要在给定条件下从弹出菜单中隐藏/显示特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50084354/

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