Android Studio用genymotion运行后小图标无法显示问题
作者:caipital 时间:2021-08-17 03:00:22
提出问题
我做的是一个通讯录,用到了选项菜单,每一个菜单项左边我都添加了一个小图标,运行后发现没有显示出来。
解决方案
利用反射机制,根据对象来寻找类,再根据类来找方法,在显示菜单选项的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后将图标变为可见的。
修改之后
好了,到这里我们的图标就显示成功啦!
来源:https://blog.csdn.net/caipital/article/details/105275142
标签:Android,Studio,genymotion
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Hibernate实现批量添加数据的方法
2023-11-29 08:53:56
![](https://img.aspxhome.com/file/2023/5/60815_0s.jpg)
聊聊Java的switch为什么不支持long
2023-08-24 17:35:14
Spring Boot实现图片上传功能
2023-05-17 05:06:05
idea快速搭建spring cloud注册中心与注册的方法
2023-03-09 17:40:35
![](https://img.aspxhome.com/file/2023/5/84775_0s.png)
java web监听器统计在线用户及人数
2023-12-14 14:42:52
![](https://img.aspxhome.com/file/2023/2/62842_0s.jpg)
Android使用GestureOverlayView控件实现手势识别
2023-03-02 08:46:26
![](https://img.aspxhome.com/file/2023/6/88096_0s.png)
Java.try catch finally 的执行顺序说明
2022-07-06 00:30:25
![](https://img.aspxhome.com/file/2023/2/63312_0s.jpg)
详解Android的两种事件处理机制
2023-10-05 23:37:20
![](https://img.aspxhome.com/file/2023/4/88114_0s.jpg)
java抓取网页或文件中的邮箱号码
2023-07-30 19:19:28
![](https://img.aspxhome.com/file/2023/9/62119_0s.jpg)
Java设计模式之单例和原型
2023-11-29 04:14:18
Java 执行CMD命令或执行BAT批处理方式
2022-10-15 03:57:38
![](https://img.aspxhome.com/file/2023/3/67663_0s.png)
springMVC自定义注解,用AOP来实现日志记录的方法
2023-11-29 13:58:53
Hibernate一级缓存和二级缓存详解
2023-11-16 11:58:11
java中Hashmap的get方法使用
2023-10-29 13:10:05
![](https://img.aspxhome.com/file/2023/2/58602_0s.png)
Java 类与对象超基础讲解
2023-06-12 00:03:22
![](https://img.aspxhome.com/file/2023/8/70938_0s.png)
详解java中float与double的区别
2021-09-12 11:04:47
100行C#代码实现经典扫雷游戏
2023-12-05 16:33:30
![](https://img.aspxhome.com/file/2023/0/70400_0s.png)
Java事件处理机制和适配器全面解析
2021-10-23 04:19:32
![](https://img.aspxhome.com/file/2023/0/73070_0s.png)
深入探讨Java多线程中的volatile变量
2023-08-31 02:32:18
springboot static关键字真能提高Bean的优先级(厉害了)
2023-03-10 07:39:12
![](https://img.aspxhome.com/file/2023/7/85407_0s.png)