2013-05-04 54 views
1

我有一個字符串arraylist,我需要隨機選擇一個索引,如果字符串值是 「熊」,然後將按鈕的背景設置爲bear.jpg。如何通過將字符串值與圖像名稱匹配來選擇可繪製的圖像?

好的,我的研究表明,資源是通過int id訪問的,而不是他們的名字,我不確定實現我想要做什麼的最佳方式。這裏是我的代碼:

list.add("alligator"); 
    list.add("bear"); 
    list.add("beaver"); 
    list.add("bison"); 

    randomInt = randomGenerator.nextInt(list.size()); 
    b1.setBackgroundResource(R.drawable.list.get(randomInt)); 

當然現在代碼的最後一行是錯誤的,我寫它顯示我想達到的目標。我最近嘗試完成這項工作是試圖獲取資源ID並以這種方式訪問​​資源,但我不知道是否這樣做,如果是這樣,我沒有使用正確的代碼。我正在努力自己做這件事,但我可以在這裏做些什麼建議。這裏是我的嘗試:

  String mDrawableName = "bear"; 
     int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName()); 

     String s= Integer.toString(resID); 
+1

沒有ü嘗試INT渣油= getResources()則getIdentifier(mDrawableName, 「繪製」, getPackageName()); b1.setBackgroundResource(渣油); – blessenm 2013-05-04 21:53:58

+0

也許我做過了,我嘗試了很多,我會盡力而爲,以防萬一! :) – deucalion0 2013-05-04 21:54:40

+0

這實際上工作完美!謝謝!我不認爲我以前嘗試過!如果你加入這個答案我可以接受它,你應該得到這些分數!你的代碼中的 – deucalion0 2013-05-04 22:12:49

回答

4

使用下面的代碼

int resID = getResources().getIdentifier(mDrawableName , "drawable", getPackageName());  
b1.setBackgroundResource(resID); 
1

試試這個:

list.add("alligator"); 
list.add("bear"); 
list.add("beaver"); 
list.add("bison"); 

randomInt = randomGenerator.nextInt(list.size()); 

int resourceId = getResources().getIdentifier(list.get(randomInt), "drawable", getPackageName()); 
b1.setBackgroundResource(resourceId); 
相關問題