2011-06-13 18 views
1

我有一些圖像名稱存儲在數據庫中(完全合格像R.drawable。SomeImageName)列類型是整數,但圖像本身位於應用程序的/ res/drawable文件夾中。數據庫中可繪製的引用存儲

我需要在運行時分配這些圖像的一些看法,目前我在做這樣說:

SomeView.setBackgroundResource(Cursor.getstring(Image_column_Index)); 

someView.setBackgroundResource(getResources().getIdentifier(cursor.getString(Image_Column_Index, null, null)); 

這些方法都不是工作。提前致謝。

+0

首先所有的R文件autegenerated期間生成時間。你從哪裏拿你的db ID? – woodshy 2011-06-13 11:59:32

+0

你還面對什麼樣的「不工作」?例外,「沒有發生」或其他什麼? – woodshy 2011-06-13 12:08:41

回答

8

爲R.drawable.image_name嘗試smthing這樣

getResources().getIdentifier("image_name","drawable", getPackageName()) 

或使用

getResources().getIdentifier("your.full.pakage.name:drawable/image_name",null,null); 
+0

感謝Dudu它的工作 – 2011-06-22 15:41:51

+0

@Selvin這種方法與通過R.drawable檢索rescource一樣高效。在AdapterList中使用它(getIdentifier()方法)是一個好主意嗎? – cpalosrejano 2017-05-11 10:43:40

+0

它應該是......但你可能總是緩存模型中的結果,比如'class Model {resID = -1,resName =「someName」}'然後在getView中if(model.resID == -1){model。 resID = getIdentifier(model.resName); }' – Selvin 2017-05-11 10:48:18