Android选项菜单

it2022-05-09  37

 

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;    }    }

运行结果:

   

 

转载于:https://www.cnblogs.com/welsh-android-learning/archive/2012/08/05/2623582.html


最新回复(0)