日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

          歡迎訪問 生活随笔!

          生活随笔

          當前位置: 首頁 > 运维知识 > Android >内容正文

          Android

          android选项菜单源代码,Android应用程序----UI界面控件(菜单menu)

          發布時間:2024/4/19 Android 41 豆豆
          生活随笔 收集整理的這篇文章主要介紹了 android选项菜单源代码,Android应用程序----UI界面控件(菜单menu) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

          菜單是應用程序中非常重要的組成部分,能夠在不占用界面空間的前提下,為應用程序提供了統一的功能和設置界面,并為程序開發人員提供了易于使用的編程接口

          Android系統支持三種菜單

          選項菜單(Option Menu)

          子菜單(Submenu)

          快捷菜單(Context Menu)

          選項菜單 q選項菜單是一種經常被使用的Android系統菜單

          打開方式:通過“菜單鍵”(MENU key)打開

          選項菜單分類

          圖標菜單(Icon Menu)

          擴展菜單(Expanded Menu)

          選項菜單是一種經常被使用的Android系統菜單

          打開方式:通過“菜單鍵”(MENU key)打開

          選項菜單分類

          圖標菜單(Icon Menu)

          擴展菜單(Expanded Menu)

          圖標菜單能夠同時顯示文字和圖標的菜單,最多支持6個子項

          圖標菜單不支持單選框和復選框

          擴展菜單是在圖標菜單子項多余6個時才出現,通過點擊圖標菜單最后的子項“More”才能打開

          擴展菜單是垂直的列表型菜單

          不能夠顯示圖標

          支持單選框和復選框

          重載Activity的onCreateOptionMenu()函數,才能夠在Android應用程序中使用選項菜單

          初次使用選項菜單時,會調用onCreateOptionMenu()函數,用來初始化菜單子項的相關內容

          設置菜單子項自身的子項的ID和組ID

          菜單子項顯示的文字和圖片等

          第1行和第2行代碼將菜單子項ID定義成靜態常量,并使用靜態常量Menu.FIRST(整數類型,值為1)定義第一個菜單子項,以后的菜單子項僅需在Menu.FIRST增加相應的數值即可

          第7行代碼是onCreateOptionsMenu()函數返回值,函數的返回值類型為布爾型 q返回true將顯示在函數中設置的菜單,否則不能夠顯示菜單

          第4行代碼Menu對象作為一個參數被傳遞到函數內部,因此在onCreateOptionsMenu()函數中,用戶可以使用Menu對象的add()函數添加菜單子項

          add()函數的語法

          第1個參數groupId是組ID,用以批量的對菜單子項進行處理和排序

          第2關參數itemId是子項ID,是每一個菜單子項的唯一標識,通過子項ID使應用程序能夠定位到用戶所選擇的菜單子項

          第3個參數order是定義菜單子項在選項菜單中的排列順序

          第4個參數title是菜單子項所顯示的標題

          添加菜單子項的圖標和快捷鍵:使用setIcon()函數和setShortcut()函數

          MENU_DOWNLOAD菜單設置圖標和快捷鍵的代碼

          第2行代碼中使用了新的圖像資源,用戶將需要使用的圖像文件拷貝到/res/drawable目錄下

          setShortcut()函數第一個參數是為數字鍵盤設定的快捷鍵

          第二個參數是為全鍵盤設定的快捷鍵,且不區分字母的大小寫

          重載onPrepareOptionsMenu()函數,能夠動態的添加、刪除菜單子項,或修改菜單的標題、圖標和可見性等內容

          onPrepareOptionsMenu()函數的返回值的含義與onCreateOptionsMenu()函數相同

          返回true則顯示菜單

          返回false則不顯示菜單

          下面的代碼是在用戶每次打開選項菜單時,在菜單子項中顯示用戶打開該子項的次數

          第1行代碼設置一個菜單子項的計數器,用來統計用戶打開“上傳設置”子項的次數

          第4行代碼是通過將菜單子項的ID傳遞給menu.findItem()函數,獲取到菜單子項的對象

          第5行代碼是通過MenuItem的setTitle()函數修改菜單標題

          onOptionsItemSelected()函數能夠處理菜單選擇事件,且該函數在每次點擊菜單子項時都會被調用

          下面的代碼說明了如何通過菜單子項的子項ID執行不同的操作

          onOptionsItemSelected()的返回值表示是否對菜單的選擇事件進行處理

          如果已經處理過則返回true,否則返回false

          第2行的MenuItem.getItemId()函數可以獲取到被選擇菜單子項的ID

          完整代碼請參考OptionsMenu程序

          程序運行后,通過點擊“菜單鍵”可以調出程序設計的兩個菜單子項

          子菜單

          子菜單是能夠顯示更加詳細信息的菜單子項

          菜單子項使用了浮動窗體的顯示形式,能夠更好適應小屏幕的顯示方式

          Android系統的子菜單使用非常靈活,可以在選項菜單或快捷菜單中使用子菜單,有利于將相同或相似的菜單子項組織在一起,便于顯示和分類

          子菜單不支持嵌套

          子菜單的添加是使用addSubMenu()函數實現

          第1行代碼在onCreateOptionsMenu()函數傳遞的menu對象上調用addSubMenu()函數,在選項菜單中添加一個菜單子項,用戶點擊后可以打開子菜單

          addSubMenu()函數與選項菜單中使用過的add()函數支持相同的參數,同樣可以指定菜單子項的ID、組ID和標題等參數,并且能夠通過setIcon()函數菜單所顯示的圖標

          第2行代碼使用setHeaderIcon()函數,定義子菜單的圖標

          第3行定義子菜單的標題,若不規定子菜單的標題,子菜單將顯示父菜單子項標題,即第1行代碼中 “上傳設置”

          第4行和第5行在子菜單中添加了兩個菜單子項,菜單子項的更新函數和選擇事件處理函數,仍然使用onPrepareOptionsMenu()函數和onOptionsItemSelected()函數

          以上小節的代碼為基礎,將“上傳設置”改為子菜單,并在子菜單中添加“上傳參數A”和“上傳參數B”兩個菜單子項。完整代碼請參考MySubMenu程序,運行結果如圖

          快捷菜單

          快捷菜單同樣采用了動窗體的顯示方式,與子菜單的實現方式相同,但兩種菜單的啟動方式卻截然不同

          啟動方式:快捷菜單類似于普通桌面程序中的“右鍵菜單”,當用戶點擊界面元素超過2秒后,將啟動注冊到該界面元素的快捷菜單

          使用方法:與使用選項菜單的方法非常相似,需要重載onCreateContextMenu()函數和onContextItemSelected()函數

          onCreateContextMenu()函數主要用來添加快捷菜單所顯示的標題、圖標和菜單子項等內容

          選項菜單中的onCreateOptionsMenu()函數僅在選項菜單第一次啟動時被調用一次

          快捷菜單的onCreateContextMenu()函數每次啟動時都會被調用一次

          ContextMenu類支持add()函數(代碼第7行)和addSubMenu()函數,可以在快捷菜單中添加菜單子項和子菜單

          第5行代碼的onCreateContextMenu()函數中的參數

          第1個參數menu是需要顯示的快捷菜單

          第2個參數v是用戶選擇的界面元素

          第3個參數menuInfo是所選擇界面元素的額外信息

          菜單選擇事件的處理需要重載onContextItemSelected()函數,該函數在用戶選擇快捷菜單中的菜單子項后被調用,與onOptionsItemSelected ()函數的使用方法基本相同

          使用registerForContextMenu()函數,將快捷菜單注冊到界面控件上(下方代碼第7行)。這樣,用戶在長時間點擊該界面控件時,便會啟動快捷菜單

          為了能夠在界面上直接顯示用戶所選擇快捷菜單的菜單子項,在代碼中引用了界面元素TextView(下方代碼第6行),通過更改TextView的顯示內容(上方代碼第5、8和11行),顯示用戶所選擇的菜單子項

          下方代碼是/src/layout/main.xml文件的部分內容,第1行聲明了TextView的ID為label,在上方代碼的第6行中,通過R.id.label將ID傳遞給findViewById()函數,這樣用戶便能夠引用該界面元素,并能夠修改該界面元素的顯示內容

          需要注意的一點,上方代碼的第2行,將android:layout_width設置為fill_parent,這樣TextView將填充滿父節點的所有剩余屏幕空間,用戶點擊屏幕TextView下方任何位置都可以啟動快捷菜單

          如果將android:layout_width設置為wrap_content,則用戶必須準確點擊TextView才能啟動快捷菜單

          完整代碼參考MyContextMenu程序,運行結果如圖所示

          在Android系統中,菜單不僅能夠在代碼中定義,而且可以像界面布局一樣在XML文件中進行定義

          使用XML文件定義界面菜單,將代碼與界面設計分類,有助于簡化代碼的復雜程度,并且更有利于界面的可視化

          下面將快捷菜的示例程序MyContextMen改用XML實現,新程序的工程名稱為MyXLMContoxtMenu

          首先需要創建保存菜單內容的XML文件 q在/src目錄下建立子目錄menu,并在menu下建立context_menu.xml文件,代碼如下

          在描述菜單的XML文件中,必須以

          XML菜單的顯示結果如圖所示

          在XML文件中定義菜單后,在onCreateContextMenu()函數中調用inflater.inflate()方法,將XML資源文件傳遞給菜單對象

          第4行代碼中的getMenuInflater()為當前的Activity返回MenuInflater

          第5行代碼將XML資源文件R.menu.context_menu,傳遞給menu這個快捷菜單對象

          總結

          以上是生活随笔為你收集整理的android选项菜单源代码,Android应用程序----UI界面控件(菜单menu)的全部內容,希望文章能夠幫你解決所遇到的問題。

          如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。