1. 程式人生 > >Android選項選單(OptionMenu)的建立

Android選項選單(OptionMenu)的建立

選項選單一般指的是activity中位於標題欄右側的選單,如圖所示 右上角處三個豎點便是選項選單的收起狀態右上角處三個豎點便是選項選單的收起狀態

這是展開狀態這是展開狀態

選項選單的建立一般分為3個步驟: 一、第一步建立選項選單的選項卡,例如示例中的登陸,設定,退出等。 在res目錄中建立menu資料夾,再在該資料夾中建立命名為main_menu的xml佈局檔案(可自行命名) 在res目錄中建立menu資料夾,再在該資料夾中建立命名為main_menu的xml佈局檔案(可自行命名)

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_login" android:title="@string/menu_login"/>
    <item android:id="@+id/menu_setting" android:title="@string/menu_setting"/>
    <item android:id="@+id/menu_exit" android:title="@string/menu_exit"/>
</menu>

在標籤中寫入各選項的id,文字等。 二、第二步,在Java檔案中重寫onCreateOptionsMenu方法,匯入menu佈局檔案

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu,menu);
        return true;
    }

這樣以來,在activity中便會出現選項選單了。既然出現選單項,自然需要 選單項能夠響應點選事件。 三、第三步,在Java檔案中重寫onOptionsItemSelected方法,為每個選項新增監聽事件

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()){
            case R.id.menu_login:
                Toast.makeText(this,"登陸", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_setting:
                Toast.makeText(this,"設定", Toast.LENGTH_SHORT).show();
                break;
            case R.id.menu_exit:
                Toast.makeText(this,"退出", Toast.LENGTH_SHORT).show();
                break;
            default:
                break;
        }
        return super.onOptionsItemSelected(item);
    }

在switch裡的item.getItemId()表示的是被點選的選項的id,這裡採用Toast來顯示所點選的選項。 點選設定點選設定 在活動底部便出現了內容為設定的Toast訊息在活動底部便出現了內容為設定的Toast訊息。 也可設定其他監聽事件,這裡便不一一演示了。

注!上述方法適用於需要用到選項選單的活動很多的情況,如果只有少數幾個活動需要用到選項選單,則可在Java檔案中重寫onCreateOptionsMenu時使用menu的add (int groupId, int itemId, int order, int titleRes)方法,直接新增所需要的選項。 引數描述: groudId:int型,是指組ID,用以批量地對選單子項進行處理和排序 itemId:int型,是子項ID,是每一個選單子項的唯一標識 order:int型,是指定選單子項在選項選單中的排列順序 titlerRes:String型,是指選項的文字顯示內容

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        menu.add(0,1,0,"add登陸");
        menu.add(0,2,1,"add設定");
        menu.add(0,3,3,"add退出");
        return true;
    }

如圖顯示 然後在執行第三步就可以了,值得一提的是,這時item.getItemId()獲得的內容便是add方法中的第二個引數。