PopupMenu-使用实例跟监听事件

今天需要给一个控件添加弹出菜单功能。就顺便学习了下popupMenu的使用,记录下来。

它的使用其实也非常的简单,看如下代码

popupMenu = new PopupMenu(MainActivity.this, eText);
                popupMenu.getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());
                Menu menu = popupMenu.getMenu();
                menu.findItem(R.id.search).setVisible(false);
                popupMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
                    
                    @Override
                    public boolean onMenuItemClick(MenuItem arg0) {
                        // TODO Auto-generated method stub
                        bt3.setText("onMenuItemClick");
                        return false;
                    }
                });
                popupMenu.setOnDismissListener(new OnDismissListener() {
                    
                    @Override
                    public void onDismiss(PopupMenu arg0) {
                        // TODO Auto-generated method stub
                        eText.setText("ondismiss");
                    }
                });
                
                popupMenu.show();

具体步骤

1.创建一个 PopupMenu 实例

//第二个参数绑定的是控件,也就是列表从这个控件的位置弹出
popupMenu = new PopupMenu(MainActivity.this, eText);

 

2.给这个菜单添加menu列表

//这个是绑定列表,也就是弹出的菜单列表
popupMenu.getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());

3.添加列表监听事件

popupMenu.setOnMenuItemClickListener

4.添加popupmenu消失事件监听

//当菜单消失的时候,这个方法会触发
popupMenu.setOnDismissListener

5.显示列表,这个一定要有,否则不会显示菜单

popupMenu.show();
//隐藏的话
popupMenu.dissmiss();

如果你想操作添加的menu里的item,你可以使用

Menu menu = popupMenu.getMenu();
menu.findItem(R.id.search).setVisible(false);

来得到每一个item来进行操作

posted @ 2015-07-28 11:31  小白屋  阅读(687)  评论(0编辑  收藏  举报