2015年3月8日 星期日

Android的控制項Menu

Menu控制項是專門用來做手機應用程式的功能選單的,這種選單會出現在畫面的下方,類似一長條的Bar,上面有安排的功能按鈕,當手機的Menu健被使用者點擊時會呼叫建立出的Menu的畫面。

重點
Menu的設計最主要分為兩個事件onCreateOptionsMenu()與onOptionsItemSelected()

activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="請點選Menu鍵來顯示"
        android:id="@+id/txv_Title"
        android:layout_alignParentTop="true"
        android:layout_alignParentStart="true" />
</RelativeLayout>
MainActivity.java
package com.example.win7.menu;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.TextView;


public class MainActivity extends Activity {
    private TextView txv_Title;
    public static final int itm_Menu1 = Menu.FIRST;
    public static final int itm_Menu2 = Menu.FIRST+1;
    public static final int itm_Menu3 = Menu.FIRST+2;
    public static final int itm_Menu4 = Menu.FIRST+3;
    public static final int itm_Menu5 = Menu.FIRST+4;
    public static final int itm_Menu6 = Menu.FIRST+5;
    public static final int itm_Menu7 = Menu.FIRST+6;
    public static final int itm_Menu8 = Menu.FIRST+7;
    public static final int itm_Menu9 = Menu.FIRST+8;
    /*宣告三個子功能選單變數*/
    private SubMenu sum_ShortCut;//快捷方式
    private SubMenu sum_Menu;
    private SubMenu sum_Help;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        txv_Title=(TextView)findViewById(R.id.txv_Title);
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        boolean b_Result = super.onCreateOptionsMenu(menu);
        sum_ShortCut = menu.addSubMenu(0, itm_Menu1, 0, "捷徑");
        sum_ShortCut.add(0, itm_Menu2, 0,"鍵盤鎖");
        sum_ShortCut.add(0, itm_Menu3, 1,"操作模式");

        sum_Menu = menu.addSubMenu(1, itm_Menu4, 0,"功能表");
        sum_Menu.add(0 ,itm_Menu4, 0,"訊息服務");
        sum_Menu.add(0 ,itm_Menu6, 1,"設定");

        sum_Help = menu.addSubMenu(2 , itm_Menu7, 0,"通訊錄");
        sum_Help.add(0, itm_Menu8, 0,"好友1");
        sum_Help.add(0, itm_Menu9, 0 ,"好友2");
        return b_Result;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
       switch (item.getItemId()){
           case itm_Menu1:
               txv_Title.setText("以點選捷徑選單");
               break;
           case itm_Menu2:
               txv_Title.setText("以點選-捷徑鎖");
               break;
           case itm_Menu3:
               txv_Title.setText("以點選捷-操作模式");
               break;
           case itm_Menu4:
               txv_Title.setText("以點選功能表選單");
               break;
           case itm_Menu5:
               txv_Title.setText("以點選-訊息服務");
               break;
           case itm_Menu6:
               txv_Title.setText("以點選-設定");
               break;
           case itm_Menu7:
               txv_Title.setText("以點選通訊錄");
               break;
           case itm_Menu8:
               txv_Title.setText("以點選-好友1");
               break;
           case itm_Menu9:
               txv_Title.setText("以點選-好友2");
               break;
       }
        return super.onOptionsItemSelected(item);
    }
}

沒有留言:

張貼留言