2016-02-09 19 views
2

我想動態設置菜單中的圖標。這些圖標命名爲week01,week02 ..等等。有沒有辦法通過使用「星期」+數字來改變圖標?從名稱和索引中選擇圖像

我腦子裏想的是這樣的:

MenuItem item = mMenu.findItem(R.id.action_week); 
int id = getResources().getIdentifier("week" + number, "drawable", "res.drawable-xhdpi"); 
item.setIcon(id); 

這是我要做的事現在:

switch (number){ 
     case "01": 
      item.setIcon(R.drawable.week01); 
      break; 
     case "02": 
      item.setIcon(R.drawable.week02); 
      break; 
     case "03": 
      item.setIcon(R.drawable.week03); 
      break; 
+2

第一種方法是正確的。第三個參數是錯誤的。你應該使用'getPackageName()'而不是''res.drawable-xhdpi'' – Blackbelt

+1

感謝它現在的作品:) – Helgegren

回答

1

正如評論說,這是應該的:

MenuItem item = mMenu.findItem(R.id.action_week); 
int id = getResources().getIdentifier("week" + number, "drawable", getPackageName()); 
item.setIcon(id);