zoukankan      html  css  js  c++  java
  • 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的菜单就不罗列出来了。
  • 相关阅读:
    用GDB调试程序(一)
    关于“鸡脚神”的看法
    Oracle 经典SQL 专为笔试准备
    怎样设计接口?
    myeclipse6.0下载及注冊码
    VB连接Mysql数据库
    开源html5_kiwijs_helloworld
    server宕机监控、检測、报警程序(139绑定手机短信报警)monitor_down.sh
    js实现自己定义鼠标右键-------Day45
    C/C++程序猿必须熟练应用的开源项目
  • 原文地址:https://www.cnblogs.com/zpfwin/p/6977906.html
Copyright © 2011-2022 走看看