首先结合如下的代码来看

package com.android.settings;

import android.R.integer;
import android.app.Fragment;
import android.util.Log;
import android.os.Bundle; import com.android.settings.ChooseLockGeneric.ChooseLockGenericFragment; import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.widget.Switch; /**
* Stub class for showing sub-settings; we can't use the main Settings class
* since for our app it is a special singleTask class.
*/
public class SubSettings extends Settings2 {
private final static int DELETE = 0;
private final static int CANCEL = 1; @Override
public boolean onNavigateUp() {
finish();
return true;
} @Override
protected boolean isValidFragment(String fragmentName) {
Log.d("SubSettings", "Launching fragment " + fragmentName);
return true;
} @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); } /* Vanzo:zhangshuli on: Thu, 19 Mar 2015 16:25:55 +0000
* modify for v5 calculator
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, DELETE, 0, "删除");
menu.add(0, CANCEL, 0, "取消");
return true;
}
*/
// End of Vanzo: zhangshuli @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case DELETE: break;
case CANCEL:
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, DELETE, 0, "删除");
menu.add(0, CANCEL, 0, "取消");
return true;
}
}

1.如果我们想要实现一个optionMenu,那么我们必须找到这个activity。然后重写它的方法onCreateOptionsMenu

给onCreateOptionsMenu  添加列表有两种方式

1)直接在代码里面添加

  public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, DELETE, 0, "删除");
menu.add(0, CANCEL, 0, "取消");
return true;
}

menu.add()方法有四个参数

第一个:好像是给menu中的item分组,具体作用不太明白,以后遇到再研究吧

第二个:这个是item的id,我们通过menu.getitemid()得到的就是这个值

第三个:这个是我们item的排列位置,0表示默认根据添加顺序来决定位置顺序

第四个:这个就是列表中显示的内容名称

2)通过menu 中的xml添加

在menu目录下,创建一个menu.xml

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@+id/clear_history"
android:showAsAction="ifRoom|withText"
android:icon="@drawable/clear_history"
android:title="@string/clear_history"/> <item android:id="@+id/advanced"
android:showAsAction="ifRoom|withText"
android:icon="@drawable/advanced"
android:title="@string/advanced"/> <item android:id="@+id/basic"
android:showAsAction="ifRoom|withText"
android:icon="@drawable/simple"
android:title="@string/basic"/> </menu>

代码中的引用如下

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
/* Vanzo:zhangshuli on: Thu, 15 Jan 2015 15:59:26 +0000
* modify for v5 calculator
getMenuInflater().inflate(R.menu.menu, menu);
*/
// End of Vanzo: zhangshuli
return true;
} @Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu); /* Vanzo:zhangshuli on: Thu, 15 Jan 2015 15:54:31 +0000
* modify for v5 calculator
if (!sContext.getResources().getBoolean(R.bool.isTablet)) {
menu.findItem(R.id.basic).setVisible(!getBasicVisibility());
menu.findItem(R.id.advanced).setVisible(!getAdvancedVisibility());
} else {
menu.findItem(R.id.basic).setVisible(false);
menu.findItem(R.id.advanced).setVisible(false);
}
*/

最新文章

  1. android 手机开启debug日志
  2. linux chmod 命令
  3. .net 后台读取pdf的值
  4. Android Studio 中关于NDK编译及jni header生成的问题
  5. hdu 1113 Word Amalgamation 解题报告
  6. 自建存储与使用微软Azure、七牛等第三方云存储综合考察分析
  7. Linux 命令 - ps: 显示当前进程的快照
  8. SRM588
  9. linux0.12 学习总序(不断更新状态中)
  10. C++ Primer 学习笔记_75_模板与泛型编程 --模板定义
  11. react中文API解读一(快速开始)
  12. 注解用法详解——@SuppressWarnings
  13. Bash函数
  14. Linux Command Line learning
  15. [SCOI2009] 迷路
  16. 【HDU - 4345 】Permutation(DP)
  17. go标准库的学习-runtime
  18. js通过DOM改变html和css
  19. 【python-字典】判断python字典中key是否存在的
  20. 关于eclipse的项目前有感叹号和errors exist in required project相关问题

热门文章

  1. BZOJ 4236 set乱搞
  2. HDU 5438 Ponds dfs模拟
  3. HDU 4372 Count the Buildings 组合数学
  4. springMVC No mapping found for HTTP request with URI
  5. win7安装python开发环境,执行python
  6. 【HDU】5249-KPI(线段树+离散化)
  7. [当我在研究Cocos-2dx的源代码时,我在想什么]-Ref类,一切的起源
  8. 通过Debug--&gt;Attach to Process的方式来调试网站
  9. CDQZ 0003:jubeeeeeat
  10. ocdefirst安装更新数据库