android中Menu的实现方法
2012-12-11 13:59
323 查看
有两种方法可以为Android
APPs添加菜单功能,下边将对设置过程给出详细的介绍:
第一种方法,通过Layout来添加静态菜单元素。
1.在res下添加资源文件I。右键res文件夹,创建一个静态的Menu,创建方法参阅下边的源代码:
view plain
<?xml
version="1.0"
encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/previous"
android:title="@string/previous"
android:enabled="false"
android:icon="@android:drawable/ic_media_previous"/>
<!--these
may not be available in next api (level
> 3), so be carefull-->
<item
android:id="@+id/play_pause"
android:title="@string/play"
android:icon="@android:drawable/ic_media_play"/>
<item
android:id="@+id/next"
android:title="@string/next"
android:icon="@android:drawable/ic_menu_next"/>
</menu>
2.在Activity端通过将当前的Activity与指定的Menu XML相关联:
view plain
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu,
menu);
return
true;
}
3.如果需要动态初始化MenuItem也可以通过onPrepareOptionMenu方法:
view plain
@Override
public
boolean
onPrepareOptionsMenu(Menu menu) {
if(isPlaying())
{
menu
.findItem(int
idRes)
.setTitle(String
title)
.setIcon(int
iconRes);
}
else
{
menu
.findItem(int
idRes)
.setTitle(String
title)
.setIcon(int
iconRes);
}
return
true;
}
4.监听MenuItem的选中状态。可以通过Activity的 onOptionsItemSelected或者onMenuItemSelected()方法。下面以onMenuItemSelected为例。
view plain
public
boolean onMenuItemSelected(int
featureId, MenuItem item){
switch(item.getItemId()){
case
R.id.add :
//code
return
true
;
case
R.id.delete :
//code
return
true
;
}
return
false;
}
二、第二种方法,在Activity类中动态创建Menu。
1.需要定义Menu Item的ID:
2.在OnCreateOptionsMenu方法中进行初始化
3.与第一种同样的事件监听。
三、对以上两种方法的补充:
根据需要设置不同Menu Item的属性:
1.menu.findItem(R.id.next).setEnabled(false);
设置Menu Item添加子菜单(SubMenu):
直接写在方法中:
menu.addSubMenu(R.id.repeat)
子菜单的建立于Menu类似。
如:通过静态文件得到的:
view plain
<item
android:id="@+id/SubMenu"
android:title="@string/repeat">
<menu>
<item
android:id="@+id/SubMenu_item01"
</item>
</menu>
</item>
APPs添加菜单功能,下边将对设置过程给出详细的介绍:
第一种方法,通过Layout来添加静态菜单元素。
1.在res下添加资源文件I。右键res文件夹,创建一个静态的Menu,创建方法参阅下边的源代码:
view plain
<?xml
version="1.0"
encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/previous"
android:title="@string/previous"
android:enabled="false"
android:icon="@android:drawable/ic_media_previous"/>
<!--these
may not be available in next api (level
> 3), so be carefull-->
<item
android:id="@+id/play_pause"
android:title="@string/play"
android:icon="@android:drawable/ic_media_play"/>
<item
android:id="@+id/next"
android:title="@string/next"
android:icon="@android:drawable/ic_menu_next"/>
</menu>
2.在Activity端通过将当前的Activity与指定的Menu XML相关联:
view plain
@Override
public
boolean
onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu,
menu);
return
true;
}
3.如果需要动态初始化MenuItem也可以通过onPrepareOptionMenu方法:
view plain
@Override
public
boolean
onPrepareOptionsMenu(Menu menu) {
if(isPlaying())
{
menu
.findItem(int
idRes)
.setTitle(String
title)
.setIcon(int
iconRes);
}
else
{
menu
.findItem(int
idRes)
.setTitle(String
title)
.setIcon(int
iconRes);
}
return
true;
}
4.监听MenuItem的选中状态。可以通过Activity的 onOptionsItemSelected或者onMenuItemSelected()方法。下面以onMenuItemSelected为例。
view plain
public
boolean onMenuItemSelected(int
featureId, MenuItem item){
switch(item.getItemId()){
case
R.id.add :
//code
return
true
;
case
R.id.delete :
//code
return
true
;
}
return
false;
}
二、第二种方法,在Activity类中动态创建Menu。
1.需要定义Menu Item的ID:
2.在OnCreateOptionsMenu方法中进行初始化
3.与第一种同样的事件监听。
三、对以上两种方法的补充:
根据需要设置不同Menu Item的属性:
1.menu.findItem(R.id.next).setEnabled(false);
设置Menu Item添加子菜单(SubMenu):
直接写在方法中:
menu.addSubMenu(R.id.repeat)
子菜单的建立于Menu类似。
如:通过静态文件得到的:
view plain
<item
android:id="@+id/SubMenu"
android:title="@string/repeat">
<menu>
<item
android:id="@+id/SubMenu_item01"
</item>
</menu>
</item>
相关文章推荐
- android中Menu的实现方法
- android编程之menu按键功能实现方法
- Android实现为Tab添加Menu的方法
- android menu的两种实现方法
- Android实现扩展Menu的方法
- android menu的两种实现方法
- Android来电拦截的实现方法
- Android中的Menu创建简单实现
- Android 线程 thread 两种实现方法!
- 基于mars老师视频,android 腾讯微博微博 HttpClient 方法实现上传图片
- android 实现发送彩信方法 (MMS),非调用系统界面
- Android: TODO 应用交互的两种实现方法(Behavior)
- Android实现通过手势控制图片大小缩放的方法
- 基于Android中实现定时器的3种解决方法
- Android 4.2 原生系统有哪些方法实现全屏下隐藏导航栏?
- 在Android 2.3状态栏中添加menu,home和back快捷键的方法
- Android实现ListView数据动态加载的方法
- Android开发实现webview中img标签加载本地图片的方法
- Android自定义View的实现方法,带你一步步深入了解View(四)
- android实现自动关机的具体方法