如何设置一个标签到MenuItem?

我在android中build立一个popup菜单,我需要在每个菜单项中存储一些ID。 ID是String,所以如果我可以设置一个string数组到MenuItem将是很好的。

问题是,MenuItem没有setTag方法。

我还有什么可以附加一些数据?

编辑:地名提到关于getActionView();

不幸的是它返回null。

但是,这样做是保存吗?

View view = new View(getActivity()); view.setTag(tag); menuItem.setActionView(view); 

  • IllegalArgumentException无效负载项types - 使用ActionBarCompat
  • 如何更改操作栏上菜单项的位置
  • 如何更改Android菜单项的自定义字体?
  • android菜单图标大小
  • 如何使用菜单选项从其他活动格式化活动
  • 设置从代码检查的菜单项
  • 当为一个MenuItem的ActionView使用布局时,我应该传递什么?
  • Android以编程方式更改导航抽屉菜单项文本
  • 每个MenuItem都有一个关联的View称为一个ActionView。 如果您使用的是自定义的ActionView,则可以使用MenuItem.getActionView()来获取它,并在其上设置/检索标签。

    例如,要设置一个标签:

     public void setMenuItemTag(MenuItem item, Object tag) { View actionView = item.getActionView(); actionView.setTag(tag); } 

    编辑

    如果你不使用自定义的ActionView,你可以使用HashMap来存储标签。 使用MenuItem作为键。

     public void setMenuItemTag(MenuItem item, Object tag) { myMap.put(item, tag); } // returns null if tag has not been set(or was set to null) public Object getMenuItemTag(MenuItem item, Object tag) { return myMap.get(item); }