码迷,mamicode.com
首页 > 其他好文 > 详细

popupMenu显示图标问题

时间:2017-06-10 12:38:43      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:listener   网上   界面   this   item   ast   image   add   业务逻辑   

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

技术分享

其实没啥难的,刚开始就是死活显示不了图标,只能显示文字。最后在网上百度下,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的菜单就不罗列出来了。

popupMenu显示图标问题

标签:listener   网上   界面   this   item   ast   image   add   业务逻辑   

原文地址:http://www.cnblogs.com/zpfwin/p/6977906.html

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