Android之在活动中使用Menu

手机屏幕很是有限,所以要充分利用屏幕空间。Android提供了一种菜单的方式,可让菜单获得充分地展现,并且还不占用任何屏幕空间。android

那怎么建立菜单呢?this

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

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

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <menu 
 3     xmlns:android="http://schemas.android.com/apk/res/android">
 4     <item
 5         android:id="@+id/add_item"
 6         android:title="Add"/>
 7     <item
 8         android:id="@+id/remove_item"
 9         android:title="Remove"/>
10 </menu>

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

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

1 public boolean onCreateOptionsMenu(Menu menu){
2      getMenuInflater().inflate(R.menu.main,menu);
3      return true;                
4 }

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

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

      第一个参数用于指定经过哪个资源文件来建立菜单;utf-8

      第二个参数用于指定菜单项将添加到哪个 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 } 

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

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

 

 如有错误之处,欢迎指正。谢谢!

相关文章
相关标签/搜索