Android子菜单(SubMenu)
子菜单是可以被添加到其它菜单上的菜单,但是子菜单不能添加到子菜单上。通常,当需要有大量的菜单项需要显示时,利用子菜单进行分类是一个很好的方法
main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="@string/hello_world"
tools:context=".SubMenuActivity" />
</RelativeLayout>
.java实现代码
package com.example.menusub;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
public class SubMenuActivity extends Activity {
public static final int MENU_LOCAL=0;
public static final int MENU_INTERENT=1;
MenuItem local_MenuItem=null;
MenuItem internet_MenuItem=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub_menu);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
SubMenu sub=menu.addSubMenu("搜索");
sub.setIcon(android.R.drawable.ic_menu_search);
local_MenuItem=sub.add(0,MENU_LOCAL,0,"本地");
internet_MenuItem=sub.add(0,MENU_INTERENT,0,"网络");
local_MenuItem.setCheckable(true);
//将local_menuItem菜单项设置为已选
local_MenuItem.setChecked(true);
//设置菜单项为单选菜单项,互斥的
sub.setGroupCheckable(0, true, true);
return true;
}
}
运行结果图:
将onCreateOptionsMenu(Menu menu)改为:
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
SubMenu sub=menu.addSubMenu("搜索");
sub.setIcon(android.R.drawable.ic_menu_search);
local_MenuItem=sub.add(0,MENU_LOCAL,0,"本地");
internet_MenuItem=sub.add(0,MENU_INTERENT,0,"网络");
// local_MenuItem.setCheckable(true);
//local_MenuItem.setChecked(true);
//设置菜单项为单选菜单项,互斥的
// sub.setGroupCheckable(0, true, true);
//将菜单项设置为复选。
local_MenuItem.setCheckable(true);
internet_MenuItem.setCheckable(true);
local_MenuItem.setChecked(true);
return true;
}
结果为: