Android-PopupMenu弹出式菜单的基本使用

PopupMenu,弹出菜单,一个模态形式展示的弹出风格的菜单,绑在在某个View上,一般出现在被绑定的View的下方(如果下方有空间)。

注意:弹出菜单是在API 11和更高版本上才有效的。

基本使用

  1. 通过PopupMenu的构造函数实例化一个PopupMenu对象,需要传递一个当前上下文对象以及绑定的View。
  2. 调用PopupMenu.setOnMenuItemClickListener()设置一个PopupMenu选项的选中事件。
  3. 使用MenuInflater.inflate()方法加载一个XML文件到PopupMenu.getMenu()中。
  4. 在需要的时候调用PopupMenu.show()方法显示。

现在通过代码来实现。重新新建一个工程文件MenuTest03。步骤如下:

一、在res/menu/main.xml中定义菜单项。main.xml的代码如下:

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

    <item android:id="@+id/exit"
        android:title="退出"/>
    <item android:id="@+id/set"
        android:title="设置"/>
    <item android:id="@+id/account"
        android:title="账号"/>
</menu>

二、设置监听

public class MainActivity extends Activity implements OnClickListener,OnMenuItemClickListener{

    
    private Button button1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button1 = (Button)findViewById(R.id.button1);
        button1.setOnClickListener(this);
    }

    //点击按钮后,加载弹出式菜单
    @Override
    public void onClick(View v) {
        //创建弹出式菜单对象(最低版本11)
        PopupMenu popup = new PopupMenu(this, v);//第二个参数是绑定的那个view
        //获取菜单填充器
        MenuInflater inflater = popup.getMenuInflater();
        //填充菜单
        inflater.inflate(R.menu.main, popup.getMenu());
        //绑定菜单项的点击事件
        popup.setOnMenuItemClickListener(this);
        //显示(这一行代码不要忘记了)
        popup.show(); 
        
    }

    //弹出式菜单的单击事件处理
    @Override
    public boolean onMenuItemClick(MenuItem item) {
        // TODO Auto-generated method stub
        switch (item.getItemId()) {
        case R.id.exit:
            Toast.makeText(this, "退出", Toast.LENGTH_SHORT).show();
            break;
        case R.id.set:
            Toast.makeText(this, "设置", Toast.LENGTH_SHORT).show();
            break;
        case R.id.account:
            Toast.makeText(this, "账号", Toast.LENGTH_SHORT).show();
            break;
        default:
            break;
        }
        return false;
    }
    
}

注意代码绑定了两个监听器:OnClickListener和OnMenuItemClickListener。 在绑定OnMenuItemClickListener监听器时,选的是下面这个:
在这里插入图片描述
效果如下:

在这里插入图片描述

参考:http://www.cnblogs.com/smyhvae/p/4133292.html

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Android Studio弹出式菜单的完整代码演示: 1. 在XML布局文件中添加一个按钮: ```xml <Button android:id="@+id/btn_popup_menu" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Show Popup Menu" /> ``` 2. 在Java代码中为按钮添加点击事件,并在事件处理程序中创建弹出式菜单: ```java Button btnPopupMenu = findViewById(R.id.btn_popup_menu); btnPopupMenu.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { PopupMenu popupMenu = new PopupMenu(MainActivity.this, v); popupMenu.getMenuInflater().inflate(R.menu.popup_menu, popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.menu_item_1: // 处理菜单项1的点击事件 return true; case R.id.menu_item_2: // 处理菜单项2的点击事件 return true; case R.id.menu_item_3: // 处理菜单项3的点击事件 return true; default: return false; } } }); popupMenu.show(); } }); ``` 3. 在res目录下创建一个menu文件夹,并在该文件夹下创建一个popup_menu.xml文件,用于定义弹出式菜单的布局和内容: ```xml <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/menu_item_1" android:title="Menu Item 1" /> <item android:id="@+id/menu_item_2" android:title="Menu Item 2" /> <item android:id="@+id/menu_item_3" android:title="Menu Item 3" /> </menu> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值