0
点赞
收藏
分享

微信扫一扫

Android记录23-关于actionbar中overflow menu(溢出菜单)中的一些问题

爱动漫建模 2022-03-20 阅读 68

/**

  • 获取IMEI号,IESI号,手机型号

    */

    public static void getInfo(Context context) {

    TelephonyManager mTm = (TelephonyManager) context

          .getSystemService(Context.TELEPHONY_SERVICE);

    String imei = mTm.getDeviceId();

    String imsi = mTm.getSubscriberId();

    String mtype = android.os.Build.MODEL; // 手机型号

    String mtyb = android.os.Build.BRAND;// 手机品牌

    String numer = mTm.getLine1Number(); // 手机号码,有的可得,有的不可得

    Log.i("text", "手机IMEI号:" + imei + "手机IESI号:" + imsi + "手机型号:" + mtype

          + "手机品牌:" + mtyb + "手机号码" + numer);

    }

获取手机品牌

/**

  • 得到手机品牌

  • @return

    */

    public static String getPhoneBrand() {

    return android.os.Build.BOARD;

    }

得到手机品牌之后,我们就在创建溢出菜单的时候进行判断:

1. 如果是魅族手机,则加载自定义菜单

2. 如果不是,则使用系统的溢出菜单,加载菜单内容

@Override

public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {

  // Inflate the menu; this adds items to the action bar if it is present.

  super.onCreateOptionsMenu(menu, inflater);

  String brand = PhoneUtils.getPhoneBrand();

  if ("mx4pro".equals(brand)) {

      inflater.inflate(R.menu.overflow_menu, menu);

  } else {

      inflater.inflate(R.menu.main, menu);

  }

}

溢出菜单文件

/res/menu/main.xm

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    &lt;item

        android:id="@+id/menu_hotest"

        android:orderInCategory="100"

        android:showAsAction="never"

        android:title="@string/menu_hotest"/&gt;

    &lt;item

Android记录23-关于actionbar中overflow menu(溢出菜单)中的一些问题

        android:id="@+id/menu_lastest"

        android:orderInCategory="100"

        android:showAsAction="never"

        android:title="@string/menu_lastest"/&gt;

</menu>

自定义的菜单文件

/res/menu/overflow_menu.xml

<?xml version="1.0" encoding="utf-8"?>

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

&lt;item

    android:id="@+id/menu_overflow"

    android:icon="@drawable/ic_more"

    android:orderInCategory="100"

    android:showAsAction="always"

    android:title="@string/menu_overflow"&gt;

&lt;/item&gt;

</menu>

自定义菜单就直接给它设置一个actionbar的按钮,图标是那三个点

我们在选中菜单的时候执行我们的业务逻辑

@Override

public boolean onOptionsItemSelected(MenuItem item) {

  switch (item.getItemId()) {

  case R.id.menu_overflow:

      popupOverflowMenu();

      return true;

  case R.id.menu_lastest:

      type = "latest";

      break;

  case R.id.menu_hotest:

      type = "hotest";

      break;

  default:

      break;

  }

  return super.onOptionsItemSelected(item);

}

如果是魅族mx4pro手机,就弹出我们的自定义菜单,下面是实现:

/**

  • 弹出自定义溢出菜单

最后

以前一直是自己在网上东平西凑的找,找到的东西也是零零散散,很多时候都是看着看着就没了,时间浪费了,问题却还没得到解决,很让人抓狂。

后面我就自己整理了一套资料,还别说,真香!

资料有条理,有系统,还很全面,我不方便直接放出来,大家可以先看看有没有用得到的地方吧。

系列教程图片

2020Android复习资料汇总.png

flutter

NDK

设计思想开源框架

微信小程序

举报

相关推荐

0 条评论