Android Studio用genymotion运行后小图标无法显示问题
2020-04-04 07:06
1396 查看
提出问题
我做的是一个通讯录,用到了选项菜单,每一个菜单项左边我都添加了一个小图标,运行后发现没有显示出来。
解决方案
利用反射机制,根据对象来寻找类,再根据类来找方法,在显示菜单选项的Activity中复写onMenuOpened方法:
@Override public boolean onMenuOpened(int featureId, Menu menu) { if(menu!=null){ if(menu.getClass().getSimpleName().equalsIgnoreCase("MenuBuilder")){ try { Method method=menu.getClass().getDeclaredMethod("setOptionalIconsVisible",Boolean.TYPE); method.setAccessible(true); method.invoke(menu,true); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } } } return super.onMenuOpened(featureId, menu); }
我解释一下,因为设置图标显示这个方法是不可访问的(private),所以我们才会这么麻烦要用到反射机制来显现图标。
代码我也解释一下,我们用menu对象来反射MenuBuilder
这个类,看这个类有没有。得到这个类以后,再通过这个类得到它的方法,这个方法叫setOptionalIconsVisible
,这个是要自己打出来的,这个方法它是Boolean类型的。因为这个方法是私有的,所以我们要把不可访问设置为可访问的。最后我们调用method.invoke
设置true后将图标变为可见的。
修改之后
好了,到这里我们的图标就显示成功啦!
总结
到此这篇关于Android Studio用genymotion运行后小图标无法显示怎办的文章就介绍到这了,更多相关Android Studio genymotion 小图标无法显示内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
您可能感兴趣的文章:
相关文章推荐
- 【Android Studio】Android Monitor找不到手机问题-无法显示运行程序问题解决
- 【Android Studio】Android Monitor无法显示运行程序问题解决
- 【Android Studio】Android Monitor无法显示运行程序问题解决
- Win7 VS2010下开发的CS软件,安装到XP下无法运行或者桌面快捷方式无法显示图标的问题解决方法
- Android Studio 中的类文件前标识图标显示为 j 而不是C,代码的左边没有了颜色显示,布局文件的引用也没有蓝色显示,代码大部分变成了白色。项目能正常编译运行,且敲代码时也没有了提示的问题
- 解决bootstrap中glyphicon无法显示图标只显示方框的问题
- 网络驱动器无法显示SVN图标问题
- PyQT5 图标(icon)无法显示问题
- 火狐打开本地bootstrap页面,小图标无法正常显示问题
- Android studio导入项目无法运行。keystore问题。
- 发布的QT程序无法显示图标和图片的问题
- 解决bootstrap导入图标组件无法显示的问题
- TortoiseSVN import visualSVN时没有进度以及图标无法显示的问题(2011年10月29日星期六)
- windows游戏开发中一个关于Visual Studio的编译链接成功,输出窗口却显示线程已退出。无法运行项目的问题
- firefox(ff)下无法显示bootstrap图标问题的解决方案
- 解决Editor.md中Github emoji图标无法显示的问题
- android studio无法运行--app显示红叉或者显示灰色的问号
- (2017年1月4日)解决Android studio无法更新和无法下载genymotion插件问题http://blog.csdn.net/narunishino/article/details/5
- 解决网页ICON图标无法显示的问题
- Windows XP中当最小化程序时,无法在任务栏显示图标的问题