●實作練習:預期畫面

create Options Menu         create Options Menu

 

 

●建立一個xml menu(Defining a Menu in XML)

1.對res按右鍵=>New=>Android Resource Directory

create Options Menu

2.Resource type 選定為menu,會自動帶入Directory name

create Options Menu

3.對已建立的menu directory按右鍵=>New=>Menu resource file

create Options Menu

4.輸入file name,完成menu xml的建立

create Options Menu


●程式-- mymenu.xml 

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/menu1"
        android:icon="@android:drawable/ic_dialog_email"
        android:title="@string/option1"
        app:showAsAction="ifRoom|collapseActionView" />
    <item
        android:id="@+id/menu2"
        android:title="option2"
        tools:ignore="HardcodedText" />
</menu>

 

●程式-- java code

@Override  //利用程式產生options menu
    //這個方法會傳入一個menu物件(就是三個點)
    public boolean onCreateOptionsMenu(Menu menu) {
        //增加選單(作法一)
        //menu.add("option1");
        //menu.add("option2");
        
        //增加選單更好的做法(作法二)
        //menu.add(0,1,0,"option1");
        //menu.add(0,2,0,"otpion2");
        
        //resource file設定option menu的作法(作法三)
        getMenuInflater().inflate(R.menu.mymenu,menu);
        return super.onCreateOptionsMenu(menu);
    }

    @Override //偵測哪一個選單被按下,會傳回item
    public boolean onOptionsItemSelected(MenuItem item) {
        //這邊的idR檔中的id
        if(item.getItemId()==R.id.menu1){
            Toast
            .makeText(this,"option1 is selected",Toast.LENGTH_SHORT)
            .show();
        }
        if(item.getItemId()==R.id.menu2){
            Toast
            .makeText(this,"option2 is selected",Toast.LENGTH_SHORT)
            .show();
        }
        
        return super.onOptionsItemSelected(item);
    }
}

●程式參考(GitHub):How to create Options Menu in Android

arrow
arrow

    muchone 發表在 痞客邦 留言(0) 人氣()