Android_(菜單)選項菜單

來源:互聯網
上載者:User

標籤:version   alt   定義   ade   class   txt   pre   .com   bre   

Android系統中菜單分為Options Menu、Context Menu、Sub Men三種

Options Menu和Context Menu屬於一級菜單

Sub Menu屬於Options Menu和Context Menu的子功能表

Sub Menu下不能再添加菜單,Android最多隻能支援兩級菜單

 

選項菜單(Options Menu)在當前Activity中按下菜單鍵就會顯示

Android4.0一下預設在螢幕底部(我也不知道我的為什麼預設是在右上方!!!)

常用以下方法使用 選項菜單

 

onCreateOptionsMenu(Menu menu):建立菜單,會在菜單第一次顯示時調用。

onPrepareOnptionsMenu(Menu menu): 準備顯示菜單,菜單每次顯示前調用。

onOptionsItemSelected(MenuItem item):功能表項目被選中後處理選中的功能表項目。

onMenuOpened(int featureId,Menu menu):菜單被開啟的事件。

onOptionsMenuClosed(Menu menu):菜單被關閉的事件。

openOptionsMenu():調用開啟菜單

closeOptionsMenu():調用關閉菜單

 

運行:

程式結構:

 

 

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    tools:context="com.example.asus.gary_03.MainActivity">    <EditText        android:id="@+id/txt"        android:layout_width="fill_parent"        android:layout_height="wrap_content"        android:hint="輸入文字"        android:editable="false"        android:inputType="textPersonName" /></LinearLayout>
activity_main.xml

 

package com.example.asus.gary_03;import android.graphics.Color;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.SubMenu;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity {    //定義字型大小功能表項目的標識    final int FONT_10 = 0x111;    final int FONT_12 = 0x112;    final int FONT_14 = 0x113;    final int FONT_16 = 0x114;    final int FONT_18 = 0x115;    //定義普通功能表項目的標識    final int PLAIN_ITEM = 0x11b;    //定義字型顏色功能表項目的標識    final int FONT_RED = 0x116;    final int FONT_BLUE = 0x117;    final int FONT_GREEN = 0x118;    private EditText edit;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        edit = (EditText)findViewById(R.id.txt);    }    public boolean onCreateOptionsMenu(Menu menu) {        //向menu中添加字型大小的子功能表        SubMenu fontMenu = menu.addSubMenu("字型大小");        //設定菜單的表徵圖        fontMenu.setIcon(android.R.drawable.btn_plus);        //設定菜單頭的表徵圖        fontMenu.setHeaderIcon(android.R.drawable.btn_default);        //設定菜單頭的標題        fontMenu.setHeaderTitle("選擇字型大小");        fontMenu.add(0,FONT_10,0,"10號字型");        fontMenu.add(0,FONT_12,0,"12號字型");        fontMenu.add(0,FONT_14,0,"14號字型");        fontMenu.add(0,FONT_16,0,"16號字型");        fontMenu.add(0,FONT_18,0,"18號字型");        //向menu中添加普通功能表項目        menu.add(0,PLAIN_ITEM,0,"普通功能表項目");        //向menu中添加文字顏色的子功能表        SubMenu colorMenu = menu.addSubMenu("字型的顏色");        colorMenu.setIcon(android.R.drawable.btn_plus);        colorMenu.setHeaderIcon(android.R.drawable.btn_default);        colorMenu.setHeaderTitle("選擇文字的顏色");        colorMenu.add(0,FONT_RED,0,"紅色");        colorMenu.add(0,FONT_GREEN,0,"綠色");        colorMenu.add(0,FONT_BLUE,0,"藍色");        return super.onCreateOptionsMenu(menu);    }    public boolean onOptionsItemSelected(MenuItem mi)    {        switch(mi.getItemId())        {            case FONT_10:                edit.setTextSize(10*2);                break;            case FONT_12:                edit.setTextSize(12*2);                break;            case FONT_14:                edit.setTextSize(14*2);                break;            case FONT_16:                edit.setTextSize(16*2);                break;            case FONT_18:                edit.setTextSize(18*2);                break;            case FONT_RED:                edit.setTextColor(Color.RED);                break;            case FONT_GREEN:                edit.setTextColor(Color.GREEN);                break;            case FONT_BLUE:                edit.setTextColor(Color.BLUE);                break;            case PLAIN_ITEM:                Toast toast = Toast.makeText(MainActivity.this,"單擊普通功能表項目",Toast.LENGTH_SHORT);                toast.show();                break;        }        return true;    }}
MainActivity

 

 一、介面布局

  只有一個EditText用來顯示測試的內容

 

二、實現程式

 

1、向menu中添加字型大小的子功能表

  fontMenu.setHeaderTitle("選擇字型大小");        fontMenu.add(0,FONT_10,0,"10號字型");        fontMenu.add(0,FONT_12,0,"12號字型");        fontMenu.add(0,FONT_14,0,"14號字型");        fontMenu.add(0,FONT_16,0,"16號字型");        fontMenu.add(0,FONT_18,0,"18號字型");        //向menu中添加普通功能表項目        menu.add(0,PLAIN_ITEM,0,"普通功能表項目");        //向menu中添加文字顏色的子功能表        SubMenu colorMenu = menu.addSubMenu("字型的顏色");        colorMenu.setIcon(android.R.drawable.btn_plus);        colorMenu.setHeaderIcon(android.R.drawable.btn_default);        colorMenu.setHeaderTitle("選擇文字的顏色");        colorMenu.add(0,FONT_RED,0,"紅色");        colorMenu.add(0,FONT_GREEN,0,"綠色");        colorMenu.add(0,FONT_BLUE,0,"藍色");

 

2、實現對子功能表項的選擇

onOptionsItemSelected(MenuItem item):功能表項目被選中後處理選中的功能表項目。

public boolean onOptionsItemSelected(MenuItem mi)    {        switch(mi.getItemId())        {            case FONT_10:                edit.setTextSize(10*2);                break;            case FONT_12:                edit.setTextSize(12*2);                break;            case FONT_14:                edit.setTextSize(14*2);                break;            case FONT_16:                edit.setTextSize(16*2);                break;            case FONT_18:                edit.setTextSize(18*2);                break;            case FONT_RED:                edit.setTextColor(Color.RED);                break;            case FONT_GREEN:                edit.setTextColor(Color.GREEN);                break;            case FONT_BLUE:                edit.setTextColor(Color.BLUE);                break;            case PLAIN_ITEM:                Toast toast = Toast.makeText(MainActivity.this,"單擊普通功能表項目",Toast.LENGTH_SHORT);                toast.show();                break;        }        return true;    }

 

Android_(菜單)選項菜單

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.