menu-代碼添加以及add方法參數意義


今天需要給一個menu動態添加一個item,先把方法記錄如下

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        menu.add(Menu.NONE, MENU_REVET, 0, R.string.revert)
                .setEnabled(true)
                .setIcon(R.drawable.ic_settings_schpwroff)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        menu.add(Menu.NONE, MENU_SAVE, 0, R.string.done)
                .setEnabled(true)
                .setIcon(R.drawable.ic_settings_schpwroff)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
        return super.onCreateOptionsMenu(menu);
    } 

 

上面幾個方法我們簡單介紹下

setEnable:這個是設置menuItem可點擊狀態,設置為false,會顯示灰色

setIcon:設置圖標

setShowAsAction:設置menu顯示位置

現在我們重點介紹下最后一個方法-add

這個方法里面有四個參數,它們的意義分別為

       第一個int類型的group ID參數,代表的是組概念,你可以將幾個菜單項歸為一組,以便更好的以組的方式管理你的菜單按鈕。它對應方法

int i = item.getGroupId();


       第二個int類型的item ID參數,代表的是項目編號。這個參數非常重要,一個item ID對應一個menu中的選項。在后面使用菜單的時候,就靠這個item ID來判斷你使用的是哪個選項。它對應

int id = item.getItemId();


       第三個int類型的order ID參數,代表的是菜單項的顯示順序。默認是0,表示菜單的顯示順序就是按照add的顯示順序來顯示。如果兩個位置數值一樣,那么先定義的拍前面。而且,groupid並不影響排列順序。
       第四個String類型的title參數,表示選項中顯示的文字。

我們看下一個例子

    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        menu.add("hah").setIcon(R.drawable.abc_ab_bottom_solid_dark_holo).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        menu.add("heihei").setEnabled(true).setIcon(R.drawable.abc_ab_bottom_solid_dark_holo).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
        menu.add(1, 11, 0, "1-1").setEnabled(false);
        menu.add(1, 12, 0, "1-2");
        menu.add(1, 13, 2, "1-3");
        menu.add(2, 11, 3, "2-1");
        menu.add(2, 12, 4, "2-2");
        return true;
    }

結果如下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM