Android子菜单(SubMenu)

it2022-05-09  35

子菜单是可以被添加到其它菜单上的菜单,但是子菜单不能添加到子菜单上。通常,当需要有大量的菜单项需要显示时,利用子菜单进行分类是一个很好的方法

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


最新回复(0)