android - 以编程方式删除弹出菜单项

标签 android xml popupmenu

我正在我的应用程序中扩充弹出菜单。我创建了如下所示的弹出菜单 xml。

Song_popup xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    style="@style/ToolBarStyle">

    <item
        android:id="@+id/add_queue"
        android:title="Add to queue" />
    <item
        android:id="@+id/play_next"
        android:title="Add to favourite" />
    <item
        android:id="@+id/add_download"
        android:title="Download" />


</menu>

现在我想通过检查条件来删除一个项目。我该怎么做?

代码

PopupMenu popup = new PopupMenu(activity, v);
MenuInflater inflater = popup.getMenuInflater();
inflater.inflate(R.menu.song_popup, popup.getMenu());
popup.show();

最佳答案

您可以删除菜单项,如下所示:

Menu m = popup.getMenu();
m.removeItem(m.findItem(R.id.add_queue));  //removes "Add to queue"

条件的实现完全取决于您。


这是处理菜单项点击的方式:

popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
    @Override
    public boolean onMenuItemClick(MenuItem menuItem) {
        if(menuItem.getItemId() == R.id.play_next){
            Toast.makeText(YourActivity.this, "Play_next", Toast.LENGTH_SHORT).show();
            return true;
        }
        return false;
    }
});

关于android - 以编程方式删除弹出菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30435094/

相关文章:

android - 如何在 ActiveAndroid ORM 中使字段自动递增

android - 如何更改弹出菜单的标题

Python 3 Tkinter 菜单小部件的回调似乎不按顺序

java - 使用Java在android studio中查询firebase数据库

android - 为 Android 编码时,有没有办法分别获取设备每个内核的 CPU 使用率?

java - 无法解析方法 findViewById();添加admob时

android - Android ListView 中的弹出菜单问题

xml - XSD 无、其中之一或两者

xml - 如何将 XSLT 2.0 中的字符串转换为小数点到最后两位小数

c# - 从 DataSet 创建 SQL Server 数据库