Opinion Menu的使用——开源项目Standup Timer学习总结(一)
2012-06-25 09:14
555 查看
一、Opinion Menu 的使用
在android的SDK中options menu 是这样解释的:Options menus: The icon
menus do not support item check marks and only show the item's
reached via the 'More' item in the icon menu) do not show item icons, and item check marks are discouraged.
具体的操作表现就是 在android手机上按 menu 键时显示的菜单,点击相应的菜单可以进行相应的操作。
Option menu的使用比较简单,首先在res文件夹下新建menu目录,然后往里面添加菜单的XML 文件。
item:每一个item对应一项菜单。
android:icon:用于指定菜单显示的图标。
android:title:菜单的标题,显示在图标下面。
android:alphabeticShortcut:菜单选择的快捷键。
关于Menu的更多属性请查看SDK上的 Menu
Resource。
第二步是在Activity里重写 onCreateOptionsMenu 方法,并通过MenuInflater 将刚才的xml资源转化为Menu
实例。并显示在Activity里
运行模拟器点击Menu键,就可以看到菜单目录的显示了。但是此时点击菜单并没有任何反应,原因是我们还没添加对应的处理事件。给menu添加处理事件需要重写public boolean onOptionsItemSelected(MenuItem item)方法。
根据MenuItem的 getItemId()获取对应menu项的ID,这个id值对应xml中的 android:id。这样菜单功能就完成实现了,建议将一些不常用的功能链接放到菜单中例如:about us 、help 等等,因为用户可能不懂得如何使用菜单。
在android的SDK中options menu 是这样解释的:Options menus: The icon
menus do not support item check marks and only show the item's
condensed title. The expanded menus (only available if six or more menu items are visible,
reached via the 'More' item in the icon menu) do not show item icons, and item check marks are discouraged.
具体的操作表现就是 在android手机上按 menu 键时显示的菜单,点击相应的菜单可以进行相应的操作。
使用步骤
Option menu的使用比较简单,首先在res文件夹下新建menu目录,然后往里面添加菜单的XML 文件。<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/settings" android:title="@string/settings_label" android:icon="@android:drawable/ic_menu_preferences" android:alphabeticShortcut="s"> </item> </menu>
item:每一个item对应一项菜单。
android:icon:用于指定菜单显示的图标。
android:title:菜单的标题,显示在图标下面。
android:alphabeticShortcut:菜单选择的快捷键。
关于Menu的更多属性请查看SDK上的 Menu
Resource。
第二步是在Activity里重写 onCreateOptionsMenu 方法,并通过MenuInflater 将刚才的xml资源转化为Menu
实例。并显示在Activity里
/** * 创建系统菜单,该菜单通过按下Menu键显示 */ @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); //通过MenuInflater将XML 实例化为 Menu Object MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; }
运行模拟器点击Menu键,就可以看到菜单目录的显示了。但是此时点击菜单并没有任何反应,原因是我们还没添加对应的处理事件。给menu添加处理事件需要重写public boolean onOptionsItemSelected(MenuItem item)方法。
/** * 菜单点击事件 */ @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.about: Logger.d("Displaying the about box"); // 显示关于页 displayAboutBox(); return true; case R.id.help: Logger.d("Displaying the help dialog"); // 显示到帮帐页 displayHelpDialog(); return true; case R.id.settings: Logger.d("Displaying the settings"); // 跳转到配置页 displaySettings(); return true; case R.id.teams: Logger.d("Displaying the team configuration"); // 跳转到团队配置页 displayTeamConfiguration(); return true; case R.id.quit: Logger.d("Quitting"); // 退出程序 finish(); return true; default: Logger.e("Unknown menu item selected"); //返回False交由系统正常处理菜单,返回True则由本程序处理 return false; } }
根据MenuItem的 getItemId()获取对应menu项的ID,这个id值对应xml中的 android:id。这样菜单功能就完成实现了,建议将一些不常用的功能链接放到菜单中例如:about us 、help 等等,因为用户可能不懂得如何使用菜单。
相关文章推荐
- Dialog使用详解——开源项目Standup Timer学习总结(三)
- Context Menu的使用+为ListView绑定监听器——开源项目Standup Timer学习总结(二)
- PreferenceActivity、SharedPreferences——开源项目Standup Timer学习总结(四)
- ViewGroup,Spinner——开源项目Standup Timer学习总结(五)
- Android 开源项目-StandupTimer学习笔记索引
- 学习和使用开源项目经验总结
- Maven学习总结(八)——使用Maven构建多模块项目
- Maven学习总结(八)——使用Maven构建多模块项目
- ASP.NET MVC WebApi 返回数据类型序列化控制(json,xml) 用javascript在客户端删除某一个cookie键值对 input点击链接另一个页面,各种操作。 C# 往线程里传参数的方法总结 TCP/IP 协议 用C#+Selenium+ChromeDriver 生成我的咕咚跑步路线地图 (转)值得学习百度开源70+项目
- Maven学习总结(7)——eclipse中使用Maven创建Web项目
- 使用开源项目的正确姿势,都是血和泪的总结!
- [项目过程中所遇到的各种问题记录]学习篇——对工作以来的学习过的开源项目进行总结—DiscuzNt
- 下拉刷新listview 的开源项目学习总结
- c语言开源项目--SQLite学习资料总结
- Maven学习总结(7)——eclipse中使用Maven创建Web项目
- 一位大师总结的东西---J2EE学习中一些值得研究的开源项目
- maven 学习总结(八)——使用Maven构建多模块项目
- Android开源:数据库ORM框架GreenDao学习心得及使用总结
- 【Android开源项目解析】背景有波浪效果的TextView——从Titanic项目学习BitmapShader的使用
- iOS超全开源框架、项目和学习资料汇总(5)AppleWatch、经典博客、三方开源总结篇