删除弹出菜单项编程 [英] remove popup menu item programmatically

查看:209
本文介绍了删除弹出菜单项编程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在夸大我的应用程序一个弹出菜单。我创建了一个XML popmenu像下面。

Song_popup XML

 <?XML版本=1.0编码=UTF-8&GT?;
<菜单的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    风格=@风格/ ToolBarStyle>    <项目
        机器人:ID =@ + ID / add_queue
        机器人:标题=添加到队列/>
    <项目
        机器人:ID =@ + ID / play_next
        机器人:标题=加入收藏/>
    <项目
        机器人:ID =@ + ID / add_download
        机器人:title =下载/>
&所述; /菜单>

现在我想通过检查的条件删除项目。我怎样才能做到这一点?

code

  PopupMenu的弹出=新的PopupMenu(活动,V);
MenuInflater吹气= popup.getMenuInflater();
inflater.inflate(R.menu.song_popup,popup.getMenu());
popup.show();


解决方案

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

 菜单M = popup.getMenu();
m.removeItem(m.findItem(R.id.add_queue)); //删除添加到队列

的实施条件是完全取决于你。


,这是你如何处理菜单项点击:

  popup.setOnMenuItemClickListener(新PopupMenu.OnMenuItemClickListener(){
    @覆盖
    公共布尔onMenuItemClick(菜单项菜单项){
        如果(menu​​Item.getItemId()== R.id.play_next){
            Toast.makeText(YourActivity.thisPlay_next,Toast.LENGTH_SHORT).show();
            返回true;
        }
        返回false;
    }
});

I'm inflating a popup menu in my application. I've created a popmenu xml like below.

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>

Now i want to remove a item by checking a condition. How can i do this?

Code

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

解决方案

You can remove a menu item as below:

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

Implementation of condition is totally up to you.


and this is how you can handle menu item clicks:

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

这篇关于删除弹出菜单项编程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆