使用OptionMenu


只要重写两个方法
public boolean onCreateOptionsMenu(Menu menu):菜单的初始化
public boolean onOptionsItemSelected(MenuItem item):菜单响应事件

除此之外,还有三个方法可以重写
public void onOptionsMenuClosed(Menu menu):菜单关闭时调用
public boolean onPrepareOptionsMenu(Menu menu):选项菜单显示前调用, 可在这里进行菜单的调整(动态加载菜单列表)
public boolean onMenuOpened(int featureId, Menu menu):选项菜单打开后调用

菜单的加载方式


编写菜单XML文件

首先在项目目录res文件夹中建立Menu文件夹,然后再其中创建需要的菜单,代码如下:

<?xml version="1.0" encoding="utf-8"?><menu xmlns:android="http://schemas.android.com/apk/res/android">    <item        android:id="@+id/add_item"        android:title="Add" />    <item        android:id="@+id/remove_item"        android:title="Remove" />menu>

下面我们就在对应的代码中来装载这个定义的菜单XML布局文件,并处理响应事件:

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {    getMenuInflater().inflate(R.menu.main, menu);    return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {    switch (item.getItemId()) {        case R.id.add_item:            Toast.makeText(this, "You clicked Add", Toast.LENGTH_SHORT).show();            break;        case R.id.remove_item:            Toast.makeText(this, "You clicked Remove", Toast.LENGTH_SHORT).show();            break;        default:    }    return true;}

add方法实现

通过代码动态添加,onCreateOptionsMenu的参数menu,调用add方法添加菜单,add(菜单项的组号,ID,排序号,标题),另外如果排序号是按添加顺序排序的话都填0即可

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.    menu.add(1,RED,1,"红色");    menu.add(1,GREEN,2,"绿色");    menu.add(1,BLUE,3,"蓝色");    return true;}

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. NPM 和webpack 的基础使用
  3. Python list sort方法的具体使用
  4. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  5. python list.sort()根据多个关键字排序的方法实现
  6. android源码编译出现No private recovery resources for TARGET_
  7. android获取当前文字的总体长度的方法
  8. Android(安卓)with the NDK_001
  9. android音乐播放器Service的生命周期分析

随机推荐

  1. 面试官:如何实现一个乐观锁(小白都能看得懂
  2. volatile如何避免指令重排序?原来使用了内
  3. JDK 中有哪些同步容器?并发容器?
  4. DNS解析域名:发现域名和IP不一致,访问了该
  5. Condition实现等待、唤醒
  6. 今年写技术博文的几点思考
  7. Android(安卓)数据存储---SharedPreferen
  8. java中的编码转化方式都有哪些?(大厂高频面
  9. Java并发原子类有哪些?如何使用?
  10. Eclipse中android插件的安装