弹出菜单 PopupMenu 的使用

来源:互联网 发布:csolfps优化大全 编辑:程序博客网 时间:2024/06/11 14:20

这次是一个弹出菜单,当点击按钮或者文字时,在下方弹出一个菜单。PopupMenu是在android sdk3.0版本以后加入了一个特殊效果。他可以在任何一个View显示。
源码下载
下面看一下效果图:
这里写图片描述

用法:
首先在res目录新建menu目录,然后在menu目录下新建menu.xml文件,具体代码如下:

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <item        android:id="@+id/add"        android:title="@string/add"/>    <item        android:id="@+id/edit"        android:title="@string/edit"/>    <item        android:id="@+id/delete"        android:title="@string/delete"/></menu>

res/values/strings.xml文件:

<resources>    <string name="app_name">TestPopupMenu</string>    <string name="delete">删除</string>    <string name="add">添加</string>    <string name="edit">编辑</string></resources>

最后修改MainActivity,解释已在代码中注释就不多说了:

public class MainActivity extends AppCompatActivity {Button button;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        //找到button对象        button= (Button) findViewById(R.id.click_me);        //设置button监听器        button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //实例一个menu对象                PopupMenu pMenu=new PopupMenu(MainActivity.this,v);                //设置PopupMenu对象的布局                pMenu.getMenuInflater().inflate(R.menu.menu,pMenu.getMenu());                //设置pMenu菜单的单击监听事件                pMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {                    @Override                    public boolean onMenuItemClick(MenuItem item) {                        //当点击时弹出被点击象标题                        Toast.makeText(getBaseContext(),item.getTitle(),Toast.LENGTH_LONG).show();                        return true;                    }                });                //最后调用show方法,显示菜单                pMenu.show();            }        });    }}

我的更多学习笔记请访问:www.xiaob.tech

1 0