2013-07-29 55 views
0

我在我的项目中有一个小型SQLite数据库,其中有“产品”表。该表的一列是String“image”。在活动中,我在Intent extras中接收产品ID,并从DB创建一个Product对象。在这个活动的布局中,我有一个ImageView。每次创建产品对象时,我都想将ImageView图像设置为存储在对象中的图像。我试图做到以下几点:将ImageView源设置为来自SQLite的图像

ImageView product_image = (ImageView) findViewById(R.id.product_image); 
product_image.setImageDrawable(Integer.parseInt("R.drawable."+productToPresent.getImage()); 

productToPresent是我的产品对象和返回的getImage图像串名称。 但是在这一点上我的应用程序崩溃,我在logcat中得到以下错误信息:

RuntimeException: Unable to start activity ComponentInfo{com.myapp.appname/com.myapp.appname.ActivityProductDetails}: java.lang.NumberFormatException: Invalid int: "R.drawable.cat02_prod02" 其中cat02_prod02是存储在存储我的数据库和图像的文件名的字符串。

那么该怎么办?

回答

2

你能做到这样:

int id = getResources() 
     .getIdentifier("yourpackagename:drawable/" + StringGenerated, null, null); 

这将返回你想通过做访问...那么你可以设置图像中的imageview提拉的id以下

imageview.setImageResource(id); 
+0

是的,它工作得很好!今天学到了新东西。非常感谢你! – Igal

相关问题