android中Menu的实现方法
2012-12-08 11:09
417 查看
有两种方法可以为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>
第一种方法,通过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 menu的两种实现方法
- android中Menu的实现方法
- android编程之menu按键功能实现方法
- Android实现为Tab添加Menu的方法
- Android编程实现在自定义对话框中获取EditText中数据的方法
- Android实现图片阴影效果的方法
- Android连续点击两次返回键退出程序的三种实现方法
- Android moveTaskToBack()方法实现手动隐藏当前Activity
- android实现自动关机的具体方法
- Android提高启动速度的实现方法
- Android弹出窗口实现方法
- Android编程实现对文件夹里文件排序的方法
- Android中使用fragment+slidingmenu实现侧滑
- Android onClick事件三种实现方法
- Android中实现词组高亮TextView方法示例
- android全屏去掉title栏的多种实现方法
- Android ScrollView 实现 onScrollChanged 方法!!
- Android实现全屏方法