我在android中构建一个弹出菜单,我需要在每个菜单项中存储一些ID.ID是String,因此如果我可以将一个String数组设置为MenuItem,那将是很好的.
问题是MenuItem没有setTag方法.
我怎么能附加一些数据呢?
编辑:Geobits提到了getActionView();
不幸的是,它返回null.
但是,执行以下操作是否省事?
View view = new View(getActivity());
view.setTag(tag);
menuItem.setActionView(view);
Run Code Online (Sandbox Code Playgroud)
Geo*_*its 14
每个MenuItem都有一个View名为ActionView 的关联.如果您使用的是自定义ActionView,则可以使用它来获取它MenuItem.getActionView(),并在其上设置/检索标记.
例如,要设置标记:
public void setMenuItemTag(MenuItem item, Object tag)
{
View actionView = item.getActionView();
actionView.setTag(tag);
}
Run Code Online (Sandbox Code Playgroud)
编辑
如果您没有使用自定义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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5259 次 |
| 最近记录: |