Android选项菜单

 

Android平台提供的菜单课分为三大类:选项菜单(OptionsMenu)、上下文菜单(ContextMenu)以及子菜单(SubMenu)。

Options Menu:按下手机的Menu键,在屏幕底部会出现带图标的菜单项,最多只能显示6个。

Context Menu: Do not support item shortcuts and item icons.(不支持快捷键和显示图标)

Sub menus: Do not support item icons, or nested sub menus.(不支持显示图标和嵌套的子菜单)

对OptionsMenu的操作分为三步:

1、重新实现onCreateOptionsMenu()回调方法

2、实现点击菜单事件

3、动态更新菜单

 

Main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01"

 android:layout_width="fill_parent"    
 android:layout_height="fill_parent"  
  android:orientation="vertical"   
xmlns:android="http://schemas.android.com/apk/res/android"
 >
 <ScrollView
  android:id="@+id/scrollView"       
  android:layout_width="fill_parent"       
  android:layout_height="fill_parent">

<EditText
 android:id="@+id/editText"          
  android:layout_width="fill_parent"           
  android:layout_height="fill_parent"           
  android:editable="true"          
   android:cursorVisible="false"            
   android:text="您的选择为\n"/>
 
   </ScrollView>
</LinearLayout>

 

MenuActivity.java

package com.example.menuoptions;

import android.os.Bundle;
import android.app.Activity;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuItem.OnMenuItemClickListener;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MenuActivity extends Activity {

 //OptionsMenu的itemid
 final int MENU_SAVE=0;
 final int MENU_DELETE=1;
 
 //定义 MenuItem
 MenuItem menu_item_save;
 MenuItem menu_item_delete;
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    @Override
   
    //添加OptionsMenu菜单
   
    public boolean onCreateOptionsMenu(Menu menu) {
      
     //添加菜单项 并返回  MenuItem
        menu_item_save=menu.add(0,MENU_SAVE,0,"保存");
        menu_item_delete=menu.add(0,MENU_DELETE,0,"删除");
        //给MenuItem增加图像
        menu_item_save.setIcon(android.R.drawable.ic_menu_save);
        menu_item_delete.setIcon(android.R.drawable.ic_menu_delete);
       
        return true;
       
    }
   
    // 重写onOptionsItemSelected()回调方法
    public boolean onOptionsItemSelected(MenuItem item)
    {
     super.onOptionsItemSelected(item);
     switch(item.getItemId()){
     case MENU_SAVE:
       EditText tv=(EditText)findViewById(R.id.editText);
         
          tv.setText("您的选择是保存");
      break;
     case MENU_DELETE:
       EditText tv1=(EditText)findViewById(R.id.editText);
          tv1.setText("您的选择是删除");
        break;
   
     
     }
     
     return false;
    }
   
   //动态更新菜单项
    public boolean onPrepareOptionsMenu(Menu menu){
     super.onPrepareOptionsMenu(menu);
     //通过id知道MenuItem
     MenuItem item=menu.findItem(MENU_SAVE);
     
     //由于在此处设置“保存”菜单没有图标 所以最后显示的“保存菜单”没有图标
     item.setIcon(null);
     
     
     return true;
    }
    }

运行结果:

   

 

posted @ 2012-08-05 07:15  挡不住会飞的鸡  阅读(164)  评论(0编辑  收藏  举报