Android 在XML中定义菜单
来源:互联网 发布:舒尔特表软件下载 编辑:程序博客网 时间:2024/05/16 16:18
和Android UI layout一样,我们也可以在XML中定义应用程序的菜单。通过在菜单的onCreateOptionsMenu方法中膨胀菜单layout。这样做会使我们的程序代码简单多了,而且尽可能的将更多的界面设计部分放到XML,便于浏览。
1. 在工程的/res/文件夹下创建menu文件夹,用来保存你为应用程序定义的菜单XML文件。
在菜单XML layout中,有三个有效的元素:menu、group、item。item和group必须是menu的子元素,且item必须是group的子元素。另外的menu可以是item的子元素(为了创建子菜单)。下面的XML片段显示了菜单的层次定义:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:title="Play" android:id="@+id/media_play"
android:icon="@android:drawable/ic_media_play"/>
<item android:title="Pause" android:id="@+id/media_pause"
android:icon="@android:drawable/ic_media_pause"/>
<item android:title="File" android:id="@+id/file">
<menu>
<item android:title="Open..." android:id="@+id/file_open"/>
<item android:title="Save" android:id="@+id/file_save"/>
<item android:title="Save as" android:id="@+id/file_saveas"/>
<item android:title="Exit" android:id="@+id/file_exit"/>
</menu>
</item>
<item android:title="Edit" android:id="@+id/edit">
<menu>
<group>
<item android:title="Copy" android:id="@+id/edit_copy"/>
<item android:title="Paste" android:id="@+id/edit_paste"/>
<item android:title="Cut" android:id="@+id/edit_cut"/>
<item android:title="Delete" android:id="@+id/edit_delete"/>
</group>
</menu>
</item>
</menu>
2. 重写Activity的onCreateOptionsMenu方法,通过MenuInflater.inflate方法来膨胀菜单XML。
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_option, menu);
3. 在Activity的onOptionsItemSelected方法中处理每个菜单项的点击事件:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.media_play:
break;
case R.id.media_pause:
break;
case R.id.file_open:
break;
case R.id.file_save:
…
}
return true;
}
在XML可以定义菜单项的图标、快捷键、checkbox等更多特征,了解更多请查阅SDK中关于菜单的主题。
演示的效果如图:
- Android 在XML中定义菜单
- 在XML中定义菜单
- 在XML中定义菜单
- Define Menus in XML 在xml中定义菜单选项
- Android里面用XML定义菜单资源
- Android 如何在XML文件中定义动画
- Android自定义View研究(四) -- 在XML中定义View
- Android 在定义string的xml文件中插入空格
- Android中各种颜色在dawable.xml中的定义
- Android自定义View研究(四) -- 在XML中定义View
- Android 如何在XML文件中定义动画
- Android中实现双缓冲(画板应用)和XML文件定义菜单
- 定义XML菜单文件
- Android自定义View在xml中定义样式可以定义的类型
- 在XML中定义逐帧动画
- 在strings.xml中定义html标签
- 在strings.xml中定义html标签
- 在web.xml中配置servlet定义
- 今天开博!
- OSG在VS2008下的配置安装
- symbian开发序
- VS2005调试技巧集合
- OSG2.8.1在vs2005配置
- Android 在XML中定义菜单
- WIN SERVER 2003 安装配置IIS
- 2010年3月刷Q币最新代码
- Vista UAC下应用程序标注为“需要管理员权限”的四种方法
- “微软嵌入式技术联合实验室”入驻北航科技园
- UBOOT中NAND操作
- Oracle截取函数
- OSG嵌入Win32窗口的例子
- 哎,生活……