13

Android でポップアップ メニューを作成していますが、各メニュー項目にいくつかの ID を保存する必要があります。ID は String であるため、MenuItem に String の配列を設定できれば便利です。

問題は、MenuItem に setTag メソッドがないことです。

他にどのようにデータを添付できますか?

編集: getActionView(); について言及されたジオビット

残念ながら null を返します。

ただし、次のことを行うと保存されますか?

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

2 に答える 2

15

それぞれにActionView と呼ばれるMenuItem関連付けがあります。Viewカスタム 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);
}
于 2013-03-10T19:40:29.020 に答える