Android——選項菜單的創建

前言:

在手機app中,有時候我們需要設置大量的菜單選項,如果直接在UI中顯示出來會佔用原本就不大的屏幕空間,導致app可用於顯示信息的空間減少,降低了用戶體驗。這時,就需要用到menu控件了。menu控件用於顯示應用程序的自定義菜單選項,一般位於app頂欄的右上角,在用戶不需要使用到菜單選項的時候menu處於關閉狀態,只會佔用一個圖標的空間,極大地提高了屏幕利用率和用戶體驗。

步驟:

下面我來講解一下如何創建應用程序的menu。

1、在res目錄下新建一個文件夾,命名爲menu

2、右鍵menu文件夾 - > New - > Menu resource file ,命名爲main,點擊確定後會生成main.xml文件。

3、在main.xml文件中編寫代碼:

<item>標籤是用來創建菜單項的

4、然後回到Activity,並重寫onCreateOptionsMenu()方法(重寫方法快捷鍵:Ctrl + O

並在該方法中編寫如下代碼:

onCreateOptionsMenu()方法用於創建Menu:

該方法在Activity創建的時候執行,一般只運行一次。getMenuInflater()方法獲取MenuInflater對象,再調用他的inflate()方法來創建Menu。inflate方法需要接收兩個參數,第一個參數是讓我們指定它使用哪個資源文件進行menu的創建,這裏我們指定上面創建的main.xml文件,第二個參數則用於指定我們的菜單項將添加到哪個menu對象中,這裏直接使用傳進來的menu對象。最後該方法的返回值表示是否允許該菜單顯示出來,返回true則爲顯示菜單。

5、目前還只是將菜單顯示了出來,這時候點擊菜單項是沒有反應的,所以我們還需要在Activity中定義菜單響應事件:在Activity中重寫onOptionsItemSelected()方法。設置爲點擊菜單項後會彈出Toast。

onOptionsItemSelected()方法用於設置點擊各個菜單項對應Activity做出什麼操作。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.add_item:
            Toast.makeText(this, "You Click Add!", Toast.LENGTH_SHORT).show();
            break;
        case R.id.remove_item:
            Toast.makeText(this, "You Click Remove!", Toast.LENGTH_SHORT).show();
            break;
        default:
    }
    return true;
}

大功告成!

下面看下效果

相關知識:

<item>標籤常見屬性:

android:id:菜單項的唯一標識

android:title:菜單中菜單項的標題

android:icon:菜單項的圖標

android:showAsAction:指定菜單項的顯示方式。常用的有always、ifRoom、withText和never。多個屬性值可以同時使用,但是需要中間用|隔開。

屬性值 作用
always  菜單項一直顯示在ActionBar上,而不會被收納到overflow菜單
ifRoom 如果ActionBar上空間足夠的話會顯示在上面,否則會被收納到overflow菜單
withText 該菜單項的圖標和標題會一起顯示出來
never 菜單項只會顯示在overflow菜單中
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章