从popup菜单中隐藏项目

我创build了一个popup菜单。 我需要从条件popup菜单隐藏一个特定的项目,我试着下面的代码,但它不工作,并显示“意外地你的应用程序已经停止” 。 我用findViewByIdsetEnabled(false)

有没有其他的方法来隐藏popup菜单中的项目? 请帮忙。

  @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; } 

Solutions Collecting From Web of "从popup菜单中隐藏项目"

您需要从PopupMenu获取Menu对象之前,获取该项目。 所以会是这样的

 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); 

我会在你调用popup.show()

这个答案对某人有帮助,

我用了,

 popupMenu.getMenu().findItem(R.id.next).setVisible(true); 

如果你想改变菜单的文字,你可以使用下面的代码,

 popupMenu.getMenu().findItem(R.id.next).setTitle("After");