Android 菜單詳解

來源:互聯網
上載者:User

標籤:android   上下文   菜單   

    Android中菜單分為三種,選項菜單(OptionMenu),操作功能表(ContextMenu),子功能表(SubMenu)


                                選項菜單

    可以通過兩種辦法增加選項菜單,一是在menu.xml中添加,該種方式參見Android 資源詳解(二) 菜單資源,二是在.java中添加

1、覆蓋Activity 的 onCreateOptionsMenu(Menu  menu)方法,當我們第一次開啟菜單

時該方法被自動調用。

2、調用Menu的 add()方法添加功能表項目(Menultem) ,可以調用Menultem的setIcon()

方法來為功能表項目設定表徵圖。.1

3、當功能表項目(Menuitem)    被選擇時,覆蓋 Activity   的 onOptionsItemSelected()方法來 響應事件。

如下代碼:

public class MainActivity extends Activity {    private static final int menu1=Menu.FIRST;    private static final int menu2=Menu.FIRST+1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public boolean onCreateOptionsMenu(Menu menu) {        menu.add(0,menu1,0,"OK");        menu.add(0,menu2,0,"CANCEL");        return true;    }}

                            

                                操作功能表

    當使用者按住螢幕後,彈出的菜單成為操作功能表。

    1、覆蓋Activity  的 onCreateContextMenuO方法, 調用 Menu 的 add 方法添加功能表項目

    2、覆蓋onContextItemSelected(MenuIten item) 方法,響應菜單單擊事件。

    3、調用 registerForContextMenu()方法,為視圖註冊操作功能表。當長按視圖時,會出現操作功能表。代碼如下:

public class MainActivity extends Activity {private static final int menu1=Menu.FIRST;private static final int menu2=Menu.FIRST+1;@Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        TextView mytext=(TextView)this.findViewById(R.id.text1);        this.registerForContextMenu(mytext);    }    public void onCreateContextMenu(ContextMenu menu,View v,ContextMenuInfo menuinfo) {        menu.add(0,menu1,0,"OK");        menu.add(0,menu2,0,"CANCEL");    }    public boolean onContextItemSelected(MenuItem item) {        int id=item.getGroupId();        switch(id) {        case menu1: break;        case menu2:break;        }    return super.onContextItemSelected(item);    }}

                            子功能表


    子功能表就是將相同功能的分組進行多級顯示的一種菜單,比如,Windows的"檔案"菜單中又有"建立"、"開啟"、"關閉"等子功能表。Android系統中的子功能表也很多見,如" Settings"  (設定)菜單就有其子功能表。

    具體步驟如下:

    1、覆蓋Activity 的 onCreateOptionsMenu()方法,調用 Menu 的 addSubMenu()方法添

        加子功能表項 (SubMenu)。

    2、調用SubMenu的add()方法,添加子功能表 (SubMenu) 。

    3、覆蓋onContextItemSelected()方法,響應菜單單擊事件。


代碼如下:

public class MainActivity extends Activity {    private static final int menu1=Menu.FIRST;    private static final int menu2=Menu.FIRST+1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public boolean onCreateOptionsMenu(Menu menu) {        SubMenu file=menu.addSubMenu("file");//添加子功能表        SubMenu edit=menu.addSubMenu("edit");//添加子功能表        file.add(0,menu1,0,"new");//為子功能表添加菜單選項        file.add(0,menu2,0,"open");        return true;    }}





本文出自 “無用大叔” 部落格,請務必保留此出處http://aslonely.blog.51cto.com/6552465/1614885

Android 菜單詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.