Android Studio用genymotion运行后小图标无法显示问题

提出问题

我做的是一个通讯录,用到了选项菜单,每一个菜单项左边我都添加了一个小图标,运行后发现没有显示出来。

解决方案

利用反射机制,根据对象来寻找类,再根据类来找方法,在显示菜单选项的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 小图标无法显示内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Android Studio EditText点击图标清除文本内容的实例解析

    这篇文章是继自定义EditText样式之后的功能强化,对于实际应用项目有很大的参考意见,感兴趣的朋友可以移步上一篇,"Android Studion自定义EditText样式".具体清除EditText文本内容功能代码如下: package com.liheng; import android.content.Context; import android.graphics.Rect; import android.graphics.drawable.Drawable; import

  • 在启动栏制作android studio启动图标

    https://www.linuxidc.com/Linux/2017-08/146066.htm 首先在~/bin/android-studio文件夹下新建一个Studio.desktop文件,并用gedit打开,然后将以下的内容复制进去并改动. [Desktop Entry] Name=AndroidStudio Type=Application Icon=你的AndroidStudio解压文件夹的绝对路径/android-studio/bin/studio.png Exec=sh 你的An

  • 如何设置Android studio 3.0显示光标返回上一次浏览位置的箭头图标

    这几天刚升级了Android studio 3.0,发现光标返回上一次浏览位置的箭头图标没有了.快捷键 ctrl+alt+左右键,按着真不方便.方便按的按键早已经被占满了,也懒得去改动快捷键了.来,把小箭头找回来.原来Android studio 3.0把Toolbr给默认关闭了,打开就好了.看下图: 总结 以上所述是小编给大家介绍的如何设置Android studio 3.0显示光标返回上一次浏览位置的箭头图标,希望对大家有所帮助!

  • Android Studio用genymotion运行后小图标无法显示问题

    提出问题 我做的是一个通讯录,用到了选项菜单,每一个菜单项左边我都添加了一个小图标,运行后发现没有显示出来. 解决方案 利用反射机制,根据对象来寻找类,再根据类来找方法,在显示菜单选项的Activity中复写onMenuOpened方法: @Override public boolean onMenuOpened(int featureId, Menu menu) { if(menu!=null){ if(menu.getClass().getSimpleName().equalsIgnoreC

  • Android Studio编写AIDL文件后如何实现自动编译生成

    在目录src/main 下新建了aidl 文件夹之后,在aidl文件夹中也创建了相同的包路径, 创建AIDL文件 XXX.aidl 如果XXX.aidl引用了一个java下的model例如引用了a.b.c.Model; 则需要在XXX.aidl文件中声明import a.b.c.Model;全路径. 并且创建另一个文件Model.aidl 在Model.aidl文件中声明以下内容 package xxxx包名称; parcelable Model; 如果编译的时候提示AIDL文件引用的包找不到的

  • Android Studio 3.6运行模拟器时Emulator警告问题的解决方案

    手贱更新了android studio过后,编译不报错,只要启动模拟器就会报出两行emulator警告,关掉模拟器也会有警告,之前版本用的都好好的,怎么消除警告问题? Emulator: emulator: WARNING: EmulatorService.cpp:448: Cannot find certfile: C:\Users\Sawye.android\emulator-grpc.cer security will be disabled. Emulator: Started GRPC

  • 解决Android studio中关于模拟器的/data目录不能显示的问题

    当我们在Android studio中打开Android device  monitor时,发现data目录不能打开,如图: 当我们去点击/data/目录时,发现什么都没有,这是怎么回事呢? 原因是我们权限不够,当前的用户没有权限访问data目录. 1.改变/data目录的权限 (1).在Android studio的sdk目录中找到platform-tools目录,在这个目录下同时按住shift和鼠标右键,然后选择命令窗口打开 (2).输入adb shell命令,然后输入su,使得用户切换到r

  • 浅谈Android Studio 3.0 的一些小变化

    前言 一大早还在北京拥挤的地铁里,我的CTO闫哥在微信里给我发了一条信息:Android Studio 3.0发布了. 为什么会这么关注Android Studio 3.0 的版本发布呢?主要是因为公司即将开发的新app准备使用Kotlin语言,而Android Studio 3.0 已经把Kotlin的语言支持内置进去了,这样就省去了很多的麻烦,如果你还没接触过Kotlin语言,可以去百度一下 他们的官网,如果你现在使用的Java语言,那么你真是太幸运了,因为Kotlin对于你来说,将会非常简

  • android studio实现简单的计算器小功能

    本文实例为大家分享了android studio实现简单计算器的具体代码,供大家参考,具体内容如下 布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.c

  • vue.js iview打包上线后字体图标不显示解决办法

    在vue+cli项目中使用iview组件及icon图标,打包后icon不显示,解决办法: 1.在build文件夹下找到utils.js文件,把publicPath改为 ../../ if (options.extract) { return ExtractTextPlugin.extract({ publicPath:'../../', use: loaders, fallback: 'vue-style-loader' }) } else { return ['vue-style-loader

  • 关于android studio通过命令行运行gradle编译命令的问题

    报错:Could not resolve all dependencies for configuration ':classpath'  打开android-studio的terminal,运行命令 gradlew -debug 或者 gradlew -info 发现错误 根据提示(利用gradle.perperties),解决了jdk版本问题 org.gradle.java.home=D\:/android/android-studio/jre/ 到此这篇关于关于android studio

  • Android开发之Android studio的安装与使用

    该专题的目的:学习Android studio的特性和技巧,学习Gradle的黑魔法,学习Android的最热框架,学习Android5.0以上的新特性. 该专题的行文顺序:从Android studio的特性和相关技巧以及在工作和学习中使用到的贴心插件和相关小魔法会一一介绍给大家,再根据项目的搭建,介绍给大家gradle的黑魔法,如何加速build过程,如何简单高效的使用gradle.之后,会根据项目的搭建,会向大家介绍Android的相关框架以及使用指南. 该专题的机器配置:Mac pro

  • Android studio 下JNI编程实例并生成so库的实现代码

    最近需要使用JNI编程,学了下JNI,并且在Android Studio下实现了一个小demo.这期间有一些坑,还好都解决了,想分享出来,希望大家少走弯路.本文中采用的平台是Windows,NDK环境已经搭建好,这方面资料很多,大家可以自行百度. 本文分为两个部分: 1.如何通过编写Jni实现native方法的调用. 2.怎样生成.so动态库提供给第三方使用. 以下是正文: 一,编写jni文件,实现本地方法 1,建立一个新工程,只有一个MainActivity,里面加载库文件并且调用若干本地方法

随机推荐