我想用對象填充一個popup菜單,這樣當用戶點擊其中一個項目時,我可以驗證該項目是什麼並採取適當的操作。如何使用getMenu()添加對象到菜單add
我現在這樣做的方式,它填充列表,但只有字符串,我似乎無法引用它們所代表的對象。
下面的代碼(的onClick內)
case R.id.buttonInventory:
final PopupMenu popup = new PopupMenu(MainActivity.this, buttonInventory);
popup.getMenuInflater().inflate(R.menu.popup_menu, popup.getMenu());
//add items to drop down list
for(Weapon weapon: player.getWeapons()){
popup.getMenu().add(weapon.getName());
}
popup.getMenu().add("Testing");
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
if(item.getClass().equals(Weapon.class)) {
Toast.makeText(
MainActivity.this,
"You Clicked a weapon" + item.getTitle(),
Toast.LENGTH_SHORT
).show();
}
else {
Toast.makeText(
MainActivity.this,
"You Clicked a non weapon",
Toast.LENGTH_SHORT
).show();
}
return true;
}
});
的問題是if語句。該程序不會將任何菜單項識別爲武器對象,因此跳過該武器並顯示吐司說「你點擊了非武器」。我該如何做到這一點,使菜單列表中的項目代表他們的名字來自的對象?
這並沒有改變任何東西。它仍然將一個字符串與武器類進行比較。如果可能的話,我需要知道如何將對象加載到菜單列表中。 –
你檢查了更新的answere.Did它解決你的問題 –