2013-07-29 2 views
0

У меня есть небольшой SQLite DB в моем проекте, где у меня есть таблица «Продукты». Одним из столбцов этой таблицы является String «image». В этой операции я получаю идентификатор продукта в дополнениях Intent и создаю объект Product из базы данных. В макете этой деятельности у меня есть ImageView. Каждый раз, когда создается объект Product, я хочу установить образ 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); 

Это вернет id в Drawable вы хотите получить доступ к ..., то вы можете установить изображение в imageview, выполнив следующие действия

imageview.setImageResource(id); 
+0

Да, это сработало отлично! Сегодня узнал что-то новое. Большое спасибо! – Igal

Смежные вопросы