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;

    }

解决方法

在您获得该项目之前,您需要从PopupMenu中获取菜单对象.所以会是这样的
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()之前做到这一点

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...