子菜单是可以被添加到其它菜单上的菜单,但是子菜单不能添加到子菜单上。通常,当需要有大量的菜单项需要显示时,利用子菜单进行分类是一个很好的方法
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; }
结果为:
转载于:https://www.cnblogs.com/welsh-android-learning/archive/2012/08/05/2623949.html
