demibug

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            24 Posts :: 3 Stories :: 2 Comments :: 0 Trackbacks
          Android程序?qū)崿F(xiàn)動態(tài)OptionsMenu
          默認使用的菜單例子都是創(chuàng)建的靜態(tài)菜單,在某些時候會不方便,比如: 
          一篇文章的顯示,按menu有加入收藏的功能,那實現(xiàn)的是如果未加入收藏,則是加入收藏的操作,否則是取消收藏的操作。 
          但onCreateOptionsMenu是實現(xiàn)不了這個功能的,它只會運行一次,如果再次按下menu,則不會變化。 

          我們看看程序說明: 
          public boolean onCreateOptionsMenu (Menu menu) 
          Initialize the contents of the Activity
          's standard options menu. You should place your menu items in to menu. 
          This is only called once, the first time the options menu is displayed. To update the menu every time it is displayed, see onPrepareOptionsMenu(Menu). 
          The 
          default implementation populates the menu with standard system menu items. These are placed in the CATEGORY_SYSTEM group so that they will be correctly ordered with application-defined menu items. Deriving classes should always call through to the base implementation. 
          You can safely hold on to menu (and any items created from it), making modifications to it as desired, until the next time onCreateOptionsMenu() is called. 
          When you add items to the menu, you can implement the Activity
          's onOptionsItemSelected(MenuItem) method to handle them there. 
          Parameters 
          menu The options menu in which you place your items. 
          Returns 
          You must 
          return true for the menu to be displayed; if you return false it will not be shown. 
          See Also 
          onPrepareOptionsMenu(Menu) 
          onOptionsItemSelected(MenuItem)

          也就是說明了它是第一次顯示菜單時調(diào)用的,每次更新,需要定義onPrepareOptionsMenu:
          public boolean onPrepareOptionsMenu (Menu menu) 
          Prepare the Screen
          's standard options menu to be displayed. This is called right before the menu is shown, every time it is shown. You can use this method to efficiently enable/disable items or otherwise dynamically modify the contents. 
          The default implementation updates the system menu items based on the activity's state. Deriving classes should always call through to the base class implementation.
          代碼例子:
          01.//code from www.aslibra.com
          02.public boolean onPrepareOptionsMenu(Menu menu) {
          03.menu.clear();
          04.if(isFavoutite){
          05.menu.add(0, NFav_ID, 0, R.string.menu_not_favourite).setIcon(R.drawable.ic_tab_selected_contacts);
          06.}else{
          07.menu.add(0, Fav_ID, 0, R.string.menu_favourite).setIcon(R.drawable.ic_tab_selected_contacts);
          08.}
          09.menu.add(0, Del_ID, 0, R.string.menu_delete).setIcon(R.drawable.ic_tab_selected_contacts);
          10.return super.onPrepareOptionsMenu(menu);
          11.}
          posted on 2011-11-08 21:25 Hiji 閱讀(213) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 修文县| 和静县| 通城县| 郸城县| 石嘴山市| 兴国县| 娱乐| 抚州市| 鄂托克旗| 黎平县| 鄂州市| 密云县| 衡东县| 洛川县| 垣曲县| 万全县| 双柏县| 文昌市| 连州市| 那坡县| 永泰县| 彰武县| 综艺| 祥云县| 厦门市| 台湾省| 黔南| 巴东县| 闻喜县| 咸宁市| 克拉玛依市| 集贤县| 宜宾市| 鄂托克旗| 沁阳市| 三穗县| 吴江市| 醴陵市| 那坡县| 北碚区| 墨竹工卡县|