Android之在活动中使用Menu

Posted hong_Yu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android之在活动中使用Menu相关的知识,希望对你有一定的参考价值。

手机屏幕非常有限,因此要充分利用屏幕空间。android提供了一种菜单的方式,可以让菜单得到充分地展示,而且还不占用任何屏幕空间。

那怎么创建菜单呢?

  1. 在 res 目录下新建 Menu 文件夹,在文件夹下再建一个叫 main 的菜单文件。.

  2. 在 main.xml 中添加如下代码:   

技术分享图片
1 <menu 
2     xmlns:android="http://schemas.android.com/apk/res/android">
3     <item
4         android:id="@+id/add_item"
5         android:title="Add"/>
6     <item
7         android:id="@+id/remove_item"
8         android:title="Remove"/>
9 </menu>
View Code

  在这里创建了两个菜单项,其中<item>标签就是用来创建具体的某一个菜单项,通过 id 给这个菜单项指定一个唯一的标识符, title 给这个菜单项指定一个唯一的名称。

  3. 在菜单项所在的活动中重写 onCreateOptionsMenu() 方法(重写方法快捷键 Ctrl+O)

技术分享图片
1 public boolean onCreateOptionsMenu(Menu menu){
2      getMenuInflater().inflate(R.menu.main,menu);
3      return true;                
4 }
View Code

    通过 getMenuInflater() 方法能够得到所在Activity的 MenuInflater 对象,再调用它的 inflate() 方法来设置menu XML里的 menu 作为该Activity的菜单,就可以给当前活动创建菜单了。

    inflate()  方法接受两个参数,

      第一个参数用于指定通过哪一个资源文件来创建菜单;

      第二个参数用于指定菜单项将添加到哪一个 Menu 对象中,这里可以直接使用方法中传入的 menu 参数。

    然后这个方法返回 true,表示允许创建的菜单显示出来;如果返回了 false,创建的菜单将无法显示。

  4. 当然菜单定义出来不是为了看的,我们可以给菜单定义响应事件。

    重写 onOptionsItemSelected()方法:

技术分享图片
 1 public boolean onOptionsItemSelected(MenuItem item){
 2     switch(item.getItemId){
 3          case R.id.add_item:
 4                Toast.makeText(this,"You clicked Add",Toast.LENGTH_SHORT).show();
 5                break;
 6          case R.id.remove_item:
 7                Toast.makeText(this,"You clicked Remove",Toast.LENGTH_SHORT).show();
 8                break;
 9           default:
10     }      
11      return true;
12 }        
View Code

    通过调用item.getItemId() 来判断点击的是哪一个菜单项。

  添加上菜单后重新运行程序,会发现标题栏右侧有三个点的符号,这就是菜单按钮。

 

以上是关于Android之在活动中使用Menu的主要内容,如果未能解决你的问题,请参考以下文章

Android第一行代码学习笔记三---在活动中使用Menu

在活动OnCreate中加载片段

Android中活动条ActionBar的详细使用

Android 片段和活动

Android:通过片段进行相机预览。从活动中确定

如何使用来自其他活动android的片段打开一个活动