Android显示Popup菜单

一、新建菜单

 

 

 

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

    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/ic_home_black_24dp"
        android:title="@string/title_home" />

    <item
        android:id="@+id/navigation_dashboard"
        android:icon="@drawable/ic_dashboard_black_24dp"
        android:title="@string/title_dashboard" />

    <item
        android:id="@+id/navigation_notifications"
        android:icon="@drawable/ic_notifications_black_24dp"
        android:title="@string/title_notifications" />

    <item
        android:id="@+id/menu_xkxz"
        android:icon="@drawable/ic_notifications_black_24dp"
        android:title="@string/menu_xkxz" />
</menu>

  

二、点击事件调用

        button_xk_add = (Button) root.findViewById(R.id.button_xk_add);
        button_xk_add.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                ShowPopMenu(button_xk_add);

            }
        });

  

    private void ShowPopMenu(View view)
    {
        //创建弹出式菜单对象(最低版本11)
        PopupMenu popup = new PopupMenu(getContext(), view);//第二个参数是绑定的那个view
        //获取菜单填充器
        MenuInflater inflater = popup.getMenuInflater();
        //填充菜单
        inflater.inflate(R.menu.bottom_nav_menu, popup.getMenu());
        //绑定菜单项的点击事件
         popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
             @Override
             public boolean onMenuItemClick(MenuItem item) {
                 switch(item.getItemId())
                 {
                     case R.id.navigation_home:
                         //隐藏该对话框
                         Toast.makeText(getContext(), "您单击了【"+item.getTitle()+"】菜单项",Toast.LENGTH_SHORT).show();
                         popup.dismiss();
                         break;
                     case R.id.navigation_dashboard:                         
                         Toast.makeText(getContext(), "您单击了【"+item.getTitle()+"】菜单项",Toast.LENGTH_SHORT).show();
                         popup.dismiss();
                         break;
                     case R.id.navigation_notifications:
                         Toast.makeText(getContext(), "您单击了【"+item.getTitle()+"】菜单项",Toast.LENGTH_SHORT).show();                         
                         popup.dismiss();
                         break;
                     case R.id.menu_xkxz:
                         popup.dismiss();
                         break;

                 }
                 // TODO Auto-generated method stub
                 return false;
             }
         });
        //显示(这一行代码不要忘记了)
        popup.show();
    }

  

posted @ 2021-03-03 11:34  广州飞哥  阅读(229)  评论(0)    收藏  举报