2016-10-18 61 views
1

我想通過一個變量(item是變量名稱,我將設置爲lowerCase)在我的ImageView中設置圖像。 但是,它不工作和渣油將返回0在Android Studio中使用setImageResource設置圖像使用變量

這裏是我的代碼:

ImageView iv = (ImageView)v.findViewById(R.id.imgView); 

    if (item != null) { 
     Log.i("item: ", item.toLowerCase()); 

     int resID = getResources().getIdentifier(item.toLowerCase(), "drawable", "package.name"); 

     Log.i("resid: ", String.valueOf(resID)); //will return 0 - im guessing this is where the problem is 

     iv.setImageResource(resID); 
    } 

我用這個作爲指導Android, reference things in R.drawable. using variables?但沒有其他解決方案的工作對我來說,其實他們都給了我相同的結果(返回0)。 如果需要,我可以提供更多的代碼(只是不希望它是誇張的)。 在此先感謝!

+2

'「package.name」'是錯誤的。使用'getPackageName()'。 [Here](http://stackoverflow.com/questions/22449692/set-background-drawable-resource-from-string)示例 – Blackbelt

+0

@Blackbelt確實啊..謝謝! – Axelle

回答

1

getIdentifier()如果未找到此類資源,則返回0。 (0不是有效的資源ID。)

而且你應該getPackageName()方法context對象始終返回正確的包名稱。

如果你會顯示你的文件夾結構和文件名,我可以幫你修復它。

順便說一句,如果你可以從資源直接將繪製你可以只使用R.drawable.resName

+0

它的作品T_T我很生氣,因爲沒有搞清楚。非常感謝! 是的,我知道資源,但不幸的是它不是這個應用程序的選項:) – Axelle

相關問題