0

我的项目中有一个小型 SQLite 数据库,其中有“产品”表。该表的一列是字符串“图像”。在活动中,我在 Intent extras 中收到一个产品 ID,并从数据库创建一个 Product 对象。在这个活动的布局中,我有一个 ImageView。每次创建 Product 对象时,我都想将 ImageView 图像设置为存储在对象中的图像。我尝试执行以下操作:

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

productToPresent是我的 Product 对象,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 是存储在我的数据库中的字符串和图像的文件名。

那么怎么做呢?

4

1 回答 1

2

你可以这样做:

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

这将返回id您要访问的可绘制对象的...然后您可以imageview通过执行以下操作来设置图像

imageview.setImageResource(id);
于 2013-07-29T12:24:40.797 回答