本实例主要介绍了android中的一些菜单,Android系统里面有3种类型的菜单:options menu,context menu,sub menu。
在本例中介绍了options menu,context menu。
例子中使用的图片采用了android中自带的一些图片
menu.xml
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="File"
android:icon="@drawable/icon">
<menu>
<group android:id="@+id/group1"
android:checkableBehavior="none">
<item android:id="@+id/newFile"
android:alphabeticShortcut="n"></item>
<item android:id="@+id/openFile"
android:alphabeticShortcut="o"></item>
<item android:id="@+id/saveFile"
android:alphabeticShortcut="s"></item>
</group>
</menu>
</item>
<item android:title="Edit"
android:icon="@drawable/icon">
<menu>
<group android:id="@+id/group2"
android:checkableBehavior="single">
<item android:id="@+id/cut"
android:title="Cut"></item>
<item android:id="@+id/copy"
android:title="Copy"></item>
<item android:id="@+id/past"
android:title="Past"></item>
</group>
</menu>
</item>
<item android:title="Help"
android:icon="@drawable/icon">
<menu>
<group android:id="@+id/group3"
android:checkableBehavior="all">
<item android:id="@+id/about"
android:title="About"></item>
<item android:id="@+id/exit"
android:title="Exit"></item>
</group>
</menu>
</item>
</menu>
TestMenuAcvity .java
public class TestMenuAcvity extends Activity{
public static final int ITEM1 = Menu.FIRST;
public static final int ITEM2 = Menu.FIRST + 1;
public static final int ITEM3 = Menu.FIRST + 2;
private TextView textView;
private MenuInflater menu;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testmenu);
menu = new MenuInflater(this);
textView = (TextView) findViewById(R.id.mymenu);
registerForContextMenu(textView);
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
menu.add(0, ITEM1, 0, "红色背景");
menu.add(0, ITEM2, 0, "绿色背景");
menu.add(0, ITEM3, 0, "白色背景");
}
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {
case ITEM1:
textView.setBackgroundColor(Color.RED);
break;
case ITEM2:
textView.setBackgroundColor(Color.GREEN);
break;
case ITEM3:
textView.setBackgroundColor(Color.WHITE);
break;
default:
break;
}
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenu().inflate(R.menu.menu, menu);
SubMenu file = menu.addSubMenu("文件");
SubMenu edit = menu.addSubMenu("编辑");
file.add(0, ITEM1, 0, "新建");
file.add(0, ITEM2, 0, "修改");
file.add(0, ITEM3, 0, "删除");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.about:
aboutAlert("本实例是研究如何使用XML菜单资源来定义菜单!");
break;
case R.id.exit:
exitAlert("您确定要退出吗?");
break;
case ITEM1:
setTitle("新建文件");
break;
case ITEM2:
setTitle("修改文件");
break;
case ITEM3:
setTitle("删除文件");
Toast toast = Toast.makeText(getApplicationContext(), "提示信息:\n文件删除成功!", 2);
toast.show();
break;
default:
break;
}
return true;
}
private void exitAlert(String msg){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(msg).setCancelable(false).setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
//结束Activity
finish();
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
return;
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
private void aboutAlert(String msg){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(msg).setCancelable(false).setPositiveButton("确定", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
public MenuInflater getMenu() {
return menu;
}
public void setMenu(MenuInflater menu) {
this.menu = menu;
}
}
运行结果截图:
options menu:
context menu:长按“测试菜单资源”即可显示下图,选择对应的选项“测试菜单资源”的背景色就会变成对应的颜色
- 大小: 16 KB
- 大小: 15.4 KB
- 大小: 14.4 KB
分享到:
相关推荐
仿优酷菜单 menu 优酷 菜单 menu
PB动态生成菜单MENU OBJECT,这看似简单的一句话其实包含了三层含义
基于 jquery 的 导航菜单 menu 很不错
pb 彩色菜单 menu powerbuild9 运行效果图 http://hi.csdn.net/attachment/201102/17/0_1297901373A8zH.gif
横导航菜单menu的实例 js代码,非常棒的哦!
用来制作u 盘启动的,主要用于grub平台下的启动菜单,启动包含了背景文件
android菜单menu的基本使用适合初学者
menu ul li a, .menu ul li a:visited {display:block; text-decoration:none; color:#000;width:150px; height:30px; text-align:center; color:#fff; border-bottom:1px solid #FFF; background:#0069A3; line-...
ASP.NET 自定义菜单MENU控件,直接添加引用DLL,即可使用,美观,自定义菜单样式图片,也可以替换,随意使用,附件是调用的DEMO,分享给大家。
图片颜色选择器、菜单Menu
Android初级入门——菜单Menu的简单使用
ASP.NET 菜单MENU控件数据库
android 使用菜单menu资源,最简单的menu教程,易懂!
智能家居系统 菜单Menu.doc 学习资料 复习资料 教学资源
极简宽屏杂志风格响应式网站模板_宽屏 杂志 时尚 模特 响应式 企业 bootstrap 手机 菜单 menu wap菜单 大气极简宽屏杂志风格响应式网站模板_宽屏 杂志 时尚 模特 响应式 企业 bootstrap 手机 菜单 menu wap菜单 大气
网站上线临时页面page模板_菜单 menu 上线 倒计时.rar
网站上线临时页面page模板_菜单 menu 上线 倒计时.zip源码资源下载网站上线临时页面page模板_菜单 menu 上线 倒计时.zip源码资源下载 1.学生做毕业设计用 2.程序员学习研究用 3.小公司换皮做新项目用
MFC自绘带icon或progress bar的菜单Menu 重载DrawItem、MeasureItem函数,可以设置不同的属性:SetExtensionColor、SetLargeIcon、SetMenuBitmap等。
Amaze UI前端框架做的wap移动网站模板_Amaze UI 前端框架 wap 移动端 ios andriod 手机 菜单 menu
绿色摩托车产品展示页面html5模板_绿色 摩托 摩托车 机车 导航 菜单 menu 侧栏 wap 手机 产品 展示 宽屏 w3绿色摩托车产品展示页面html5模板_绿色 摩托 摩托车 机车 导航 菜单 menu 侧栏 wap 手机 产品 展示 宽屏 w3