2012-05-31 84 views
1

我想做如何根據字符串變量通過名稱獲取資源?

String childImg = "childIcon"; 
textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.????, 0, 0, 0); 

它期待一個整數,但我有一個字符串。我如何解決這個問題?

+0

可能重複從字符串?](http://stackoverflow.com/ques tions/4427608/android-getting-resource-id-from-string) – kabuko

回答

3

我用它來獲取繪製ID [機器人,讓資源ID的

getResources().getIdentifier(childImg, "drawable", getPackageName()) 
0
textView.setCompoundDrawablesWithIntrinsicBounds(Resources.getIdentifier(childImg), 0, 0, 0); 
+0

由於某種原因不起作用。圖像只是不出來 – code511788465541441

1

使用getIdentifier()

int id = getResources().getIdentifier("name_of_resource", "id", getPackageName()); 
+0

由於某種原因不起作用。該圖像只是不出現 – code511788465541441

+0

posible解決方案http://stackoverflow.com/questions/4427608/android-getting-resource-id-from-string – seba123neo

1

做這樣的:

String childImg = "childIcon"; 
int id = getResources().getIdentifier(childImg, "drawable", getPackageName()) 
textView.setCompoundDrawablesWithIntrinsicBounds(id, 0, 0, 0); 
+0

使用getIdentifier()有任何性能問題? – Tushar

+0

是的,因爲它必須遍歷所有資源元素才能找到正確的元素。 – waqaslam

+0

因此,如果你正在進行多次調用......對嗎?在單例類中有一個整型數組可能會更好。 – Tushar

相關問題