这次是一个弹出菜单,当点击按钮或者文字时,在下方弹出一个菜单。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.skydinary.com