本章节翻译自《Beginning-Android-4-Application-Development》,如有翻译不当的地方,敬请指出。

原书购买地址http://www.amazon.com/Beginning-Android-4-Application-Development/dp/1118199545/


菜单可以用来显示额外的选项,这些选项也不必出现在主界面中。在Android框架中,主要有2种菜单:

  • 选项菜单 —— 显示与当前活动有关的信息。使用MENU键,可以触发这个菜单。
  • 上下文菜单 —— 显示与活动中某一个视图相关的信息。长按一个视图,可以触发这个菜单。

左侧是 选项菜单,右侧是 上下文菜单。

在使用这两种菜单之前,我们先介绍一下两个辅助方法。一个用来填充菜单中的选项列表,另一个用来处理菜单的选中事件。

1. 创建一个工程:Menus。

2. MenusActivity.java中的代码。

public class MenusActivity extends Activity {    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);    }    private void CreateMenu(Menu menu) {        menu.setQwertyMode(true);        MenuItem mnu1 = menu.add(0, 0, 0, "Item 1");        {            mnu1.setAlphabeticShortcut('a');            mnu1.setIcon(R.drawable.ic_launcher);        }        MenuItem mnu2 = menu.add(0, 1, 1, "Item 2");        {            mnu2.setAlphabeticShortcut('b');            mnu2.setIcon(R.drawable.ic_launcher);        }        MenuItem mnu3 = menu.add(0, 2, 2, "Item 3");        {            mnu3.setAlphabeticShortcut('c');            mnu3.setIcon(R.drawable.ic_launcher);        }        MenuItem mnu4 = menu.add(0, 3, 3, "Item 4");        {            mnu4.setAlphabeticShortcut('d');        }        menu.add(0, 4, 4, "Item 5");        menu.add(0, 5, 5, "Item 6");        menu.add(0, 6, 6, "Item 7");    }    private boolean MenuChoice(MenuItem item) {        switch (item.getItemId()) {        case 0:            Toast.makeText(this, "You clicked on Item 1", Toast.LENGTH_LONG)                    .show();            return true;        case 1:            Toast.makeText(this, "You clicked on Item 2", Toast.LENGTH_LONG)                    .show();            return true;        case 2:            Toast.makeText(this, "You clicked on Item 3", Toast.LENGTH_LONG)                    .show();            return true;        case 3:            Toast.makeText(this, "You clicked on Item 4", Toast.LENGTH_LONG)                    .show();            return true;        case 4:            Toast.makeText(this, "You clicked on Item 5", Toast.LENGTH_LONG)                    .show();            return true;        case 5:            Toast.makeText(this, "You clicked on Item 6", Toast.LENGTH_LONG)                    .show();            return true;        case 6:            Toast.makeText(this, "You clicked on Item 7", Toast.LENGTH_LONG)                    .show();            return true;        }        return false;    }}

在上面的例子中,主要包含2个方法:CreateMenu()和MenuChoice()。

CreateMenu()方法,接收一个Menu类型的参数,并且向这个参数中添加一些菜单项。

想要添加一个菜单项,我们就要创建一个MenuItem类的实例,然后使用Menu对象的add()方法。

        MenuItem mnu1 = menu.add(0, 0, 0, "Item 1");        {            mnu1.setAlphabeticShortcut('a');            mnu1.setIcon(R.drawable.ic_launcher);        }
add()方法有4个参数,我一一来解释:

  • groupId —— 如果一个菜单项在一个组中,这就是组的标识符。如果groupID是0的话,说明这个菜单项不在任何一个组中。
  • itemID —— 菜单项的唯一标识。
  • order —— 菜单项显示的顺序。
  • title —— 菜单项的显示文字。

另外,我们也可以使用setAlphabeticShortcut()方法去设置一个快捷键。这样就可以使用键盘去选择一个菜单项。

setIcon() 方法可以为菜单项去设置一个图片。

最后,MenuChoice()方法接收一个MenuItem类型的参数,然后检查它的id去判断到底是哪个菜单项被选中了,并且弹出一个Toast通知去告诉用户他选中了哪个菜单项。

更多相关文章

  1. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  2. Android(安卓)面试准备进行曲(Android(安卓)基础知识)v1.1
  3. Android(安卓)注解的应用
  4. Android音频开发之尝试音频混合
  5. android中ContactsContract获取联系人的方法
  6. 修改android4.4图库系列二——自定义菜单
  7. Android(安卓)UI绘制原理(一)
  8. Android保存图片到数据库
  9. Android(安卓)View 绘制流程之一:measure测量

随机推荐

  1. android水平ProgressBar颜色设置
  2. Android状态栏总结
  3. Android第二十三课 Java文件读取中文乱码
  4. Android自动完成文本框
  5. Android中ProgressBar的使用
  6. EditText的各种属性
  7. Android兼容性测试GTS-环境搭建、测试执
  8. FileProvider 路径配置策略的理解
  9. android第四天早:多线程基础
  10. Android 源码编译环境搭建