Bazı verileri bir açılır menüdeki her öğeye kaydetmek istiyorum. Tüm öğeler, bir beslemeden döndürülen sonuçlara göre bir for döngüsünde programlı olarak şişirilir.Seçilen öğenin konumunu Android açılır menü noktası olarak alma
Aşağıdaki örnekte, her öğenin verilerini döngü indisleri ile anahtar olarak saklamak için bir HashMap
storedOption
32 kullanın. Ama onMenuItemClick
'da seçilen öğenin konumunu elde etmenin bir yolunu bulmalıyım, böylece verileri storedOption
'dan alabilirim. Bana bunu nasıl yapacağımı söyleyen var mı? Aşağıdaki girişimin yanı sıra, item.getOrder()
'u da denedim ancak menüde kaç tane öğe olduğuna bakılmaksızın her zaman 0 değerini döndürüyor.
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();
}
}
Ne dedin 'ShowToast' bu' value'? – Shark
= id = item.getItemId(); 've menuItem setid'i deneyin. –
@ Shark.I eklediğinizde, – RedGiant