zoukankan      html  css  js  c++  java
  • Android之在活动中使用Menu

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

    那怎么创建菜单呢?

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

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

     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 给这个菜单项指定一个唯一的名称。

      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的菜单,就可以给当前活动创建菜单了。

        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 } 

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

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

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

  • 相关阅读:
    unable to retrieve container logs for docker kubernetes
    Restart container within pod
    Kubernetes1.3:POD生命周期管理
    Options of the DB storage of prometheus
    prometheus重启hang住问题记录
    prometheus交流资源
    nc 从服务器上传下载文件
    负载均衡监控需求
    prometheus消耗内存问题
    10.Docker 镜像使用
  • 原文地址:https://www.cnblogs.com/hong-yu0415/p/9408973.html
Copyright © 2011-2022 走看看