optionMenu-普通菜单使用
2024-08-31 16:07:30
首先结合如下的代码来看
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);
}
*/
最新文章
- android 手机开启debug日志
- linux chmod 命令
- .net 后台读取pdf的值
- Android Studio 中关于NDK编译及jni header生成的问题
- hdu 1113 Word Amalgamation 解题报告
- 自建存储与使用微软Azure、七牛等第三方云存储综合考察分析
- Linux 命令 - ps: 显示当前进程的快照
- SRM588
- linux0.12 学习总序(不断更新状态中)
- C++ Primer 学习笔记_75_模板与泛型编程 --模板定义
- react中文API解读一(快速开始)
- 注解用法详解——@SuppressWarnings
- Bash函数
- Linux Command Line learning
- [SCOI2009] 迷路
- 【HDU - 4345 】Permutation(DP)
- go标准库的学习-runtime
- js通过DOM改变html和css
- 【python-字典】判断python字典中key是否存在的
- 关于eclipse的项目前有感叹号和errors exist in required project相关问题
热门文章
- BZOJ 4236 set乱搞
- HDU 5438 Ponds dfs模拟
- HDU 4372 Count the Buildings 组合数学
- springMVC No mapping found for HTTP request with URI
- win7安装python开发环境,执行python
- 【HDU】5249-KPI(线段树+离散化)
- [当我在研究Cocos-2dx的源代码时,我在想什么]-Ref类,一切的起源
- 通过Debug-->;Attach to Process的方式来调试网站
- CDQZ 0003:jubeeeeeat
- ocdefirst安装更新数据库