2
ポップアップメニューのすべてのアイテムにいくつかのデータを保存します。すべての項目は、フィードから返された結果に基づいてforループ内でプログラム的に展開されます。Androidポップアップメニュークラスで選択したアイテムの位置を取得する
次の例では、ループインデックスをキーとして各アイテムのデータを格納するために、HashMap
storedOption
を使用します。しかし、onMenuItemClick
に選択した項目の位置を取得する方法を見つける必要があります。storedOption
からデータを取得できます。それを行う方法を教えてもらえますか?次の試みの他に、item.getOrder()
も試しましたが、メニューにいくつの項目があるかにかかわらず常に0を返します。
public DynamicPopUpMenu{
private Map<String,FeatureList> storedOption = new HashMap();
public void main(final Context context,List<FeatureList> featureList){
int count = 0;
PopupMenu menu = new PopupMenu(context, featureList);
for(FeatureList f:featureList) {
MenuItem item = menu.getMenu().add(f.key);
storedOption.put(count, f);
count++;
}
menu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
int position = info.position;
new ShowToast(context,Integer.toString(position)); // show position in a toast
return true;
}
});
menu.show();
}
}
いただきました。この[値]:このように
? – Shark
PopupMenuで追加すると 'id = item.getItemId();'とsetidをmenuItemにしてみてください。 –
@ Shark.I投稿を更新しました – RedGiant