PopupMenu

来源:互联网 发布:mysql text使用 编辑:程序博客网 时间:2024/04/30 19:46

会不会觉得Android自带的菜单不好用?很多时候我们需要好看的设置菜单。在这里介绍一种经常用到的弹出菜单PopupMenu,它展开来是一行一行的选项,个人觉得美观又简洁。

首先在res文件夹下新建menu文件,新建main.xml

main.xml文件放的是你要展开的内容,这里简单列两项

<menu xmlns:android="http://schemas.android.com/apk/res/android" >    <item        android:id="@+id/action_settings"        android:orderInCategory="100"        android:showAsAction="never"        android:title="哈哈"/>     <item        android:id="@+id/action_settings2"        android:orderInCategory="100"        android:showAsAction="never"        android:title="帅不"/></menu>

Activity里面只有一个按钮,点击之后展开Menu,要继承OnMenuItemClickListener。下面是简单示例

public class MainActivity extends Activity implements OnMenuItemClickListener {private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);btn = (Button) findViewById(R.id.button1);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO 自动生成的方法存根showPopupMenu(btn);}});}@SuppressLint("NewApi")private void showPopupMenu(View v) {// TODO 自动生成的方法存根 PopupMenu pop = new PopupMenu(this, v);         pop.getMenuInflater().inflate(R.menu.main, pop.getMenu());         pop.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem arg0) {// TODO 自动生成的方法存根switch (arg0.getItemId()) {case R.id.action_settings:showToast("哈哈");break;case R.id.action_settings2:showToast("帅不");break;default:break;}return false;}});        pop.show();}public void showToast(String str) {Toast.makeText(this, str, Toast.LENGTH_SHORT).show();}


0 0
原创粉丝点击