码迷,mamicode.com
首页 > 移动开发 > 详细

关于解决android4.0系统中菜单无法添加Icon的问题

时间:2014-11-08 18:02:26      阅读:179      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   io   color   ar   使用   sp   for   

在Android4.0系统中,创建菜单Menu,然后通过setIcon方法给菜单添加图标是无效的,图标不会显出来,而之前的系统中是可以显示出来的。这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 MenuBuilder做了改变,其中有private boolean mOptionalIconsVisible = false;属性使得无法显示菜单图标。

但是,我们又无法在开发的应用程序中创建MenuBuilder这个对象的(因为MenuBuilder是系统内部的框架类)。

当然如果不是很需要还挺建议不用的,或者换一种方式。要是非得用而且还要非得用setIcon的方法,那就只有通过反射机制来实现了调用setOptionalIconsVisible方法设置mOptionalIconsVisible为true

  //自己编写设置菜单图标有效函数
  //参数menu就是onCreateOptionsMenu(Menu menu) 中的参数menu
  //所以该函数要使用在它里面 使用,并且要在你使用setIcon()之前调用。
    private void setIconEnable(Menu menu, boolean enable)  
    {  
        try   
        {  
            Class<?> c = Class.forName("com.android.internal.view.menu.MenuBuilder");  
            Method m = c.getDeclaredMethod("setOptionalIconsVisible", boolean.class);  
            m.setAccessible(true);                
            m.invoke(menu, enable);  
              
        } catch (Exception e)   
        {  
            e.printStackTrace();  
        }  
    }

 

关于解决android4.0系统中菜单无法添加Icon的问题

标签:android   style   blog   io   color   ar   使用   sp   for   

原文地址:http://www.cnblogs.com/wytings/p/4083651.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!