菜單

菜單的官方文檔:
https://developer.android.google.cn/guide/topics/ui/menus.html

Android 操作系統(tǒng)中有三種基本的菜單:選項菜單(Options Menu)、上下文菜單(ContextMenu)和彈出菜單(PopupMenu)。對于所有的菜單資源,應該使用 XML 菜單資源定義菜單及其所有項。
定義菜單的步驟如下:在 res/menu/ 目錄內創(chuàng)建一個 XML 文件,并使用<menu> <item> <group> 元素構建菜單。

選項菜單的創(chuàng)建

要為 Activity 指定選項菜單,要重寫 onCreateOptionsMenu() 方法。

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.option_menu, menu);
        return true;
    }

處理點擊事件
當用戶從選項菜單中選擇項目時,系統(tǒng)將調用 Activity 的 onOptionsItemSelected() 方法。

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item1:
                Toast.makeText(this,"one",Toast.LENGTH_SHORT).show();
                return true;
            case R.id.item2:
                Toast.makeText(this,"two",Toast.LENGTH_SHORT).show();
                return true;
            case R.id.item3:
                Toast.makeText(this,"three",Toast.LENGTH_SHORT).show();
                return true;
            default:
                return super.onOptionsItemSelected(item);    
        }
共用菜單的處理方法.png

上下文菜單的創(chuàng)建

需要在創(chuàng)建菜單的 Activity 或 Fragment 中重寫如下方法:

@Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.context_menu,menu);
    }
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case R.id.item4:
                Toast.makeText(this,"one",Toast.LENGTH_SHORT).show();
                return true;
            case R.id.item5:
                Toast.makeText(this,"two",Toast.LENGTH_SHORT).show();
                return true;
            case R.id.item6:
                Toast.makeText(this,"three",Toast.LENGTH_SHORT).show();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }

為要綁定上下文菜單的空間添加長按響應屬性:

android:longClickable="true"

并使用registerForContextMenu()方法注冊

創(chuàng)建彈出菜單

Activity 可按照如下方式顯示出菜單:

   public void showPopup(View view) {
        PopupMenu popupMenu = new PopupMenu(this,view);
        MenuInflater inflater = popupMenu.getMenuInflater();
        inflater.inflate(R.menu.popup_menu,popupMenu.getMenu());
        popupMenu.show();
        popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.item7:
                        Toast.makeText(MainActivity.this, "one", Toast.LENGTH_SHORT).show();
                        return true;
                    case R.id.item8:
                        Toast.makeText(MainActivity.this, "two", Toast.LENGTH_SHORT).show();
                        return true;
                    case R.id.item9:
                        Toast.makeText(MainActivity.this, "three", Toast.LENGTH_SHORT).show();
                        return true;
                    default:
                        return false;
                }
            }
        });
    }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • http://developer.android.youdaxue.com/guide/topics/ui/men...
    acc8226閱讀 1,298評論 0 3
  • 上面的效果圖其實包含了兩種菜單。首先,右上角的那個加號和豎著的三點,是Options菜單。再者,在屏幕正中的這個是...
    uncle_charlie閱讀 1,457評論 0 0
  • 1. 菜單的分類 菜單是Android應用中非常重要且常見的組成部分,主要可以分為三類:選項菜單、上下文菜單/上下...
    小的橘子閱讀 9,383評論 0 7
  • 本節(jié)引言: 本章給大家?guī)淼氖茿ndroid中的Menu(菜單),而在Android中的菜單有如下幾種: Opti...
    侯蛋蛋_閱讀 9,046評論 0 10
  • 前幾天,我們全家與先生多年未見的朋友吃飯,久別重逢,不亦樂乎!談笑間,朋友出去接電話,幾分鐘后推門而入,已是...
    桃桃3809閱讀 955評論 0 4

友情鏈接更多精彩內容