zoukankan      html  css  js  c++  java
  • 转:android menu 实现动态修改menu

    转自:http://blog.csdn.net/pengruikeji/article/details/6432807

     在一个android创建菜单menu时,需要重写Activity的onCreateOptionsMenu(Menu menu)方法,这个方法只在第一次创建的时候调用一次,所以如果之后想对menu进行动态的修改,那么就不要再对onCreateOptionsMenu做什么手脚了。

          于是就要用到onPrepareOptionsMenu(Menu menu)方法了。onPrepareOptionsMenu与onCreateOptionsMenu不同的是,他在每次按下menu硬键之前会被调用,所以可以在这里动态的改变menu。如果需要创建一个全新的菜单,那么可以在

    public boolean onPrepareOptionsMenu(Menu menu) {
         super.onPrepareOptionsMenu(menu);
         menu.clear();
       
         cb=(CheckBox)findViewById(R.id.my_mms_item_checkbox);
       menu.add(0, MENU_01, 0, "新建短信").setIcon(R.drawable.menu_new_mms);
       Log.d(TAG,"cb.getVisibility():"+cb.getVisibility());
       if(cb.getVisibility()==View.GONE)
        menu.add(0, MENU_02, 0, "多选").setIcon(R.drawable.mms_multiple);
       else
       {
        menu.add(0, MENU_03, 0, "取消多选").setIcon(R.drawable.mms_multiple);
        menu.add(0, MENU_04, 0, "选择全部").setIcon(R.drawable.mms_multiple);
       }
         return true;
      }

    如果没有clear而直接add的话,那么菜单中菜单项是会“追加”的,这样,随着你不停的点menu键,菜单项就不停的增加。

    另外,android系统默认的菜单样式是支持最多3个一行,如果有4项就每行2个有2行...如果想自定义样式,可以使用xml文件定义样式。

  • 相关阅读:
    delphi参数传递
    Delphi OO
    Delphi Excel
    Delphi Register
    西安前端交流会
    web前端开发教程系列-4
    web前端开发教程系列-3
    web前端开发教程系列-2
    web前端开发教程系列-1
    露个脸
  • 原文地址:https://www.cnblogs.com/qingblog/p/2628220.html
Copyright © 2011-2022 走看看