本实例主要介绍了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;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.testmenu);menu = new MenuInflater(this);textView = (TextView) findViewById(R.id.mymenu);registerForContextMenu(textView);}@Overridepublic void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {menu.add(0, ITEM1, 0, "红色背景");menu.add(0, ITEM2, 0, "绿色背景");menu.add(0, ITEM3, 0, "白色背景");}@Overridepublic 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;}@Overridepublic 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;}@Overridepublic 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(){@Overridepublic void onClick(DialogInterface dialog, int which) {//结束Activityfinish();}}).setNegativeButton("取消", new DialogInterface.OnClickListener(){@Overridepublic 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(){@Overridepublic 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;}}

运行结果截图:


菜单Menu

options menu:


菜单Menu

context menu:长按“测试菜单资源”即可显示下图,选择对应的选项“测试菜单资源”的背景色就会变成对应的颜色


菜单Menu

更多相关文章

  1. Android UI Material Design交互设计(一)--BottomNavigationView
  2. 如何在Android平板电脑POWER按钮菜单中添加休眠功能
  3. Android sdcard文件读写操作
  4. android的文件读写
  5. Android Android.mk 文件一点感悟
  6. android中build.gradle文件简单说明

随机推荐

  1. Android笔记:Android后台接口教程一(从零开
  2. android之NDK(jni)开发笔记1——运行第一个
  3. 阿里路由框架ARouter简介
  4. Android 2020年最新保活方案 保活90% 已
  5. android实现ios形式的字体,实现各种自定义
  6. Android学习建议
  7. [Android Studio] Android Studio如何提
  8. 论“Android”在未来十年的发展
  9. Android React Native的使用细节问题
  10. Android 驱动之旅 第四章:在Android 系统