Menu的两种定制方法(一)
定制Menu的最重要的三个函数:
public
boolean
onCreateOptionsMenu
(Menu menu)
初始化Activity的标准选项按钮,该函数只在Menu第一次显示时调用一次
public
boolean onPrepareOptionsMenu
(Menu menu)
每当Menu显示前会被调用,我们可以在此函数体内有效的禁用/使用菜单项,或者动态的改变菜单项内容。第一次启动Menu的时候会在
onCreateOptionsMenu函数后调用一次
public boolean onOptionsItemSelected (MenuItem menu)
当选中菜单项中的任意一选项的时候,该函数将会被调用。
方法一:
使用menu.add方法
public abstract MenuItem add (int groupId, int itemId, int order, CharSequence title)
groupId:组号。
itemID:唯一标识,供获取menu焦点的时候使用。
order:菜单显示顺序。
title:菜单标题。
下面为一段简单代码:
package com.sanjinxiong.SimpleMenu; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; public class SimpleMenuActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } public boolean onCreateOptionsMenu(Menu menu){ menu.add(0, 0, 0, "菜单项一"); menu.add(0, 1, 2, "菜单项二"); menu.add(0, 2, 1, "菜单项三"); menu.add(0, 3, 3, "菜单项四"); menu.add(0, 4, 4, "菜单项五"); menu.add(0, 5, 5, "菜单项六"); menu.add(0, 6, 6, "菜单项七"); Log.v("SimpleMenuActivity", "onCreateOptionsMenu"); return true; } public boolean onPrepareOptionsMenu(Menu menu){ Log.v("SimpleMenuActivity", "onPrepareOptionsMenu"); return true; } public boolean onOptionsItemSelected(MenuItem item){ Log.v("SimpleMenuActivity", "onOptionsItemSelected"); return true; } }
操作过程为:点击了More,然后点击了菜单六。
logcat:
07-27 14:59:18.320: VERBOSE/SimpleMenuActivity(543): onCreateOptionsMenu
07-27 14:59:18.320: VERBOSE/SimpleMenuActivity(543): onPrepareOptionsMenu
07-27 14:59:28.210: VERBOSE/SimpleMenuActivity(543): onPrepareOptionsMenu
07-27 14:59:31.050: VERBOSE/SimpleMenuActivity(543): onOptionsItemSelected
注:Android只支持一页显示六个菜单,如果大于六个就用More显示