Sel*_*och 27 android popupmenu
我创建了一个弹出菜单.我需要在条件下隐藏弹出菜单中的特定项目,我尝试了下面的代码,但它不起作用并显示"意外地你的应用程序已被停止".我用过findViewById和setEnabled(false).
有没有其他方法可以隐藏弹出菜单中的项目?请帮忙.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case R.id.addMessage_Action:
AddMessage();
break;
case R.id.dropMenuAction:
menuItemView = findViewById(R.id.dropMenuAction);
PopupMenu popup = new PopupMenu(this, menuItemView);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.popupmenu_for_message_delete, popup.getMenu());
popup.show();
popup.setOnMenuItemClickListener(this);
if(Global.lock == true)
findViewById(R.id.lock_message).setEnabled(false);
else
findViewById(R.id.unlock_message).setEnabled(false);
break;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
tim*_*tim 43
Menu在获得项目之前,您需要从PopupMenu 获取Object.所以它就像是
Menu popupMenu = popup.getMenu();
if(Global.lock == true)
popupMenu.findItem(R.id.lock_message).setEnabled(false);
else
popupMenu.findItem(R.id.unlock_message).setEnabled(false);
Run Code Online (Sandbox Code Playgroud)
在你打电话之前我会这样做 popup.show()
Thi*_*van 31
这个答案可能对某人有帮助,
我在下面用过
popupMenu.getMenu().findItem(R.id.next).setVisible(true);
Run Code Online (Sandbox Code Playgroud)
如果要更改菜单文本,可以使用以下代码,
popupMenu.getMenu().findItem(R.id.next).setTitle("After");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12439 次 |
| 最近记录: |