自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳細(xì)說明Android菜單類型

移動開發(fā) Android
Android菜單類型分為了以下三種類型,分別為options menu,context menu,sub menu,歡迎大家進(jìn)行學(xué)習(xí)思考。
 

Android菜單類型作為Google遠(yuǎn)景的重要組成部分,將進(jìn)一步推進(jìn)“隨時隨地為每個人提供信息”這一企業(yè)目標(biāo)的實(shí)現(xiàn),這不但實(shí)現(xiàn)了用戶的各方面的需求,還給了蘋果那里一些的壓力。

options menu就是通過按home鍵來顯示,context menu需要在view上按上2s后顯示。這兩種menu都有可以加入子菜單,子菜單不能種不能嵌套子菜單。options menu最多只能在屏幕最下面顯示6個菜單選項(xiàng),稱為icon menu,icon menu不能有checkable選項(xiàng)。多于6的菜單項(xiàng)會以more icon menu來調(diào)出。

稱為expanded menu。options menu通過activity的onCreateOptionsMenu來生成,這個函數(shù)只會在menu第一次生成時調(diào)用。任何想改變options menu的想法只能在onPrepareOptionsMenu來實(shí)現(xiàn),這個函數(shù)會在menu顯示前調(diào)用。onOptionsItemSelected 用來處理選中的菜單項(xiàng)。

context menu是跟某個具體的view綁定在一起,在activity種用registerForContextMenu來為某個view注冊context menu。context menu在顯示前都會調(diào)用onCreateContextMenu來生成menu。onContextItemSelected用來處理選中的菜單項(xiàng)。

Android菜單類型還提供了對菜單項(xiàng)進(jìn)行分組的功能,可以把相似功能的菜單項(xiàng)分成同一個組,這樣就可以通過調(diào)用setGroupCheckable,setGroupEnabled,setGroupVisible來設(shè)置菜單屬性,而無須單獨(dú)設(shè)置。

這是一個標(biāo)準(zhǔn)的插入一個菜單項(xiàng)的方法,菜單項(xiàng)的id為MENU_ITEM_INSERT。有意思的是下面這幾句代碼:

  1. <?xml version="1.0" encoding="utf-8"?> 
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  3.     android:orientation="vertical" 
  4.     android:layout_width="fill_parent" 
  5.     android:layout_height="fill_parent" 
  6.     > 
  7. <TextView    
  8.     android:layout_width="fill_parent"   
  9.     android:layout_height="wrap_content" android:id="@+id/TextView01"/> 
  10.  
  11. <Button android:id="@+id/Button01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:text="@string/txtInfo"></Button> 
  12. </LinearLayout> 

這到底有何用處呢?其實(shí)這是一種動態(tài)菜單技術(shù)(也有點(diǎn)像插件機(jī)制),若某一個activity,其類型是”android.intent.category.ALTERNATIVE”,數(shù)據(jù)是”vnd.android.cursor.dir/vnd.google.note”的話。

系統(tǒng)就會為這個activity增加一個菜單項(xiàng)。在Android菜單類型中查看后發(fā)現(xiàn),沒有一個activity符合條件,所以這段代碼并沒有動態(tài)添加出任何一個菜單項(xiàng)。怎么回事呢?查看代碼后發(fā)現(xiàn),原來是onPrepareOptionsMenu搞的鬼!這個函數(shù)在onCreateOptionsMenu之后運(yùn)行,下面這段代碼中。

由于Menu.CATEGORY_ALTERNATIVE是指向同一個組,所以把onCreateOptionsMenu中設(shè)置的菜單項(xiàng)給覆蓋掉了,而由于onPrepareOptionsMenu沒有給Menu.CATEGORY_ALTERNATIVE附新值,故Menu.CATEGORY_ALTERNATIVE還是為空。

【編輯推薦】

  1. Android應(yīng)用程序組建原理深入剖析
  2. Android SMS短信服務(wù)相關(guān)概念簡述
  3. PythonAndroid數(shù)據(jù)庫相關(guān)代碼解讀
  4. PythonAndroid安裝卸載程序具體操作方法解析
  5. Android應(yīng)用程序的四個關(guān)鍵點(diǎn)
責(zé)任編輯:chenqingxiang 來源: 計世網(wǎng)
相關(guān)推薦

2009-12-11 10:49:04

Visual Stud

2009-12-22 15:44:47

ADO.NET菜單

2010-02-06 17:43:51

Android應(yīng)用

2010-02-06 15:53:55

2010-03-03 18:17:01

Android手機(jī)服務(wù)

2010-03-05 14:16:38

Android設(shè)計平臺

2010-02-04 15:20:50

Android SDK

2010-02-04 09:55:46

Android DEX

2010-03-03 17:11:08

2010-02-05 18:09:12

Android

2010-02-05 17:04:31

Android版本

2009-12-28 09:26:09

ADO對象

2010-02-06 16:57:43

Android操作系統(tǒng)

2010-03-05 15:58:11

操作系統(tǒng)Android

2010-03-05 13:54:09

2010-02-05 17:34:37

Android 2.1

2010-03-05 14:43:22

Android瀏覽器

2010-07-21 13:17:52

Perl文件讀寫

2010-02-22 17:54:07

Python工具

2009-12-07 18:06:46

WCF框架
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號