三金兄的自留地儿

导航

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显示



posted on 2011-07-27 23:09  三金兄的自留地儿  阅读(1701)  评论(0编辑  收藏  举报