popupMenu显示图标问题

今天仿真微信做个点击加号,显示的一些状态。界面如下:

其实没啥难的,刚开始就是死活显示不了图标,只能显示文字。最后在网上百度下,Android4.3之后就没有现成的API可以显示了,好在有其它的说法可以用,最后利用反射的原理。加了这个代码,果然图标显示出来。

反射代码:

field = popupMenu.getClass().getDeclaredField("mPopup");field.setAccessible(true);MenuPopupHelper mHelper = (MenuPopupHelper) field.get(popupMenu);mHelper.setForceShowIcon(true);

整体的代码:
PopupMenu popupMenu = new PopupMenu(MainActivity.this,view);popupMenu.getMenuInflater().inflate(R.menu.menu,popupMenu.getMenu());
popupMenu.show();在Menu显示的几个文字分别添加点击事件,可以这样写:
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {    @Override    public boolean onMenuItemClick(MenuItem item) {        switch (item.getItemId()){            case R.id.group:                Toast.makeText(MainActivity.this, "点击群聊", Toast.LENGTH_SHORT).show();                break;            case R.id.sao:                Toast.makeText(MainActivity.this, "点击扫一扫", Toast.LENGTH_SHORT).show();                break;            case R.id.addfriend:                Toast.makeText(MainActivity.this, "点击添加朋友", Toast.LENGTH_SHORT).show();                break;            case R.id.manney:                Toast.makeText(MainActivity.this, "点击收付款", Toast.LENGTH_SHORT).show();                break;        }        return false;就可以写自己想要表达的业务逻辑了。menu的菜单就不罗列出来了。
时间: 2024-12-05 12:17:35

popupMenu显示图标问题的相关文章

Android:自己定义PopupMenu的样式(显示图标/设置RadioButton图标)

PopupMenu是Android中一个十分轻量级的组件.与PopupWindow相比,PopupMenu的可自己定义的能力较小,但使用更加方便. 先上效果图: 本例要实现的功能例如以下: 1.强制显示菜单项的图标. 默认状态下.PopupMenu的图标是不显示的.而且Android没有为我们开放不论什么API去设置它的显示状态.为了显示菜单项的图标,能够自己重写PopupMenu并改动相关属性,也能够直接使用反射: try { Field field = popupMenu.getClass(

Android:自定义PopupMenu的样式(显示图标/设置RadioButton图标)

PopupMenu是Android中一个十分轻量级的组件.与PopupWindow相比,PopupMenu的可自定义的能力较小,但使用更加方便. 先上效果图: 本例要实现的功能如下: 1.强制显示菜单项的图标. 默认状态下,PopupMenu的图标是不显示的,并且Android没有为我们开放任何API去设置它的显示状态.为了显示菜单项的图标,可以自己重写PopupMenu并修改相关属性,也可以直接使用反射: try { Field field = popupMenu.getClass().get

easyui-tabs图标(获取焦点时显示图标,失去焦点时隐藏图标)

获取焦点时显示图标,失去焦点时隐藏图标 <script type="text/javascript"> $('#_progress').tabs({ onSelect: function (title) { var tab = $('#_progress').tabs('getSelected'); // get selected panel var index = $('#_progress').tabs('getTabIndex', tab); //alert(inde

Android - 安装应用(APP) 不显示图标

安装应用(APP) 不显示图标 本文地址:http://blog.csdn.net/caroline_wendy 在启动的activity的AndroidManifest注册中,添加隐式启动的data: <!-- 启动界面 --> <activity android:name="me.wcl.Activities.WelcomeActivity" android:configChanges="keyboardHidden" android:labe

Windows server 2008 R2如何预览图片而不是显示图标?

? Previews of media files are disabled by default in Windows Server 2008. In this article we will enable it so we get the small previews back again! 1. Open the?Start?menu and click?Run. Now enter?SystemPropertiesPerformance?and click?OK. In the?Perf

SVN 客户端不显示图标解决方案

下图为没有设置之前,文件夹不显示svn图标 SVN客户端不显示图标解决方案:右键svn->设置->图标覆盖->状态缓存选择"Windows外壳"->确定,刷新生效,如下图:

TortoiseSVN显示图标不正常

Windows Explorer Shell支持的Overlay Icon最多15个,除去系统使用,只有11个.如果其他程序占用了,那么乌龟SVN就无法显示了.注册表定位到:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers.修改Tortoise项的名称,让他们排到前面然后重启资源管理器就能正常显示了. TortoiseSVN显示图标不正常

svn安装后文件不显示图标

我将svn安装完成,从svn上下载文件后,可以提交和更新,但是显示不出,文件是否和svn保持一致的图标.先看一下完成后的文件夹样子. 完成步骤如下: 1.在文件的任意位置右键,选择TortoiseSVN---settings ----icon overlays 选择 shell 点击"确定" 2.将svn的安装文件双击点击Repair后,等待svn修复完成后,刷新文件夹即可. svn安装后文件不显示图标

水晶报表工具栏不显示图标或者干脆水晶报表不显示

折腾了大半天,所有的方法都试了,一开始工具栏不显示图标. 后来装了vs2010和水晶报表2010,调完之后,水晶报表干脆不显示了 纠结+无奈 最后从网上查到可能网站的默认目录改了,也就是C盘下C:\Inetpub\wwwroot这个目录 后来在IIS下新建一个网站,默认目录设置C:\Inetpub\wwwroot,然后把自己的程序加上去.测试,OK! 从开始有问题到完全弄好折腾了两周,只想说三个字  TMD