如何设置一个标签到MenuItem?

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

问题是,MenuItem没有setTag方法。

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

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

不幸的是它返回null。

但是,这样做是保存吗?

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

Solutions Collecting From Web of "如何设置一个标签到MenuItem?"

每个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); }