Android - хранить / устанавливать путь к imageResource в базе данных? - PullRequest
3 голосов
/ 15 марта 2011
Cursor c = dbHelper.getMostRecent();
String[] from = new String[] { "name", "data", "thumb" };
int[] to = new int[] { R.id.activityName, R.id.activityData, R.id.activityThumb };

startManagingCursor(c);
SimpleCursorAdapter activities;
activities = new SimpleCursorAdapter(this, R.layout.activitywidget, c, from, to);
setListAdapter(activities);

Во второй строке я беру имя, данные и большой палец из базы данных.В третьей строке я устанавливаю эти значения для activityName (TextView), ActivityData (TextView) и activityThumb (ImageView).

Он отлично работает для «имени» и «данных», но у меня нетИдея, что поставить для «большого пальца».У меня есть некоторые изображения в / res / drawable /, но я не уверен, как сохранить их в базе данных (путь к файлу в виде строки? R.drawable.IMAGE_NAME в виде строки? Нужно ли мне каким-то образом сохранять его как необработанные данные?)

Наилучший сценарий: я хотел бы просто указать каждому экземпляру ActivityThumb в списке, какой путь к изображению он должен использовать в качестве ресурса.

РЕДАКТИРОВАТЬ: я понял этосоздание реализации SimpleCursorAdaptor и переопределение bindView.

Ответы [ 2 ]

0 голосов
/ 16 марта 2011

Я понял это, создав реализацию SimpleCursorAdaptor и переопределив bindView.

public void bindView(View view, Context context, Cursor cursor) {
    ImageView imageView = (ImageView) view.findViewById(R.id.image);

    //do stuff with image here

    super.bindView(view, context, cursor);

}

0 голосов
/ 15 марта 2011

R.drawable.IMAGE_NAME является целым числом.Вы можете сохранить его в базе данных, но он может измениться при следующей сборке и сломать все существующие базы данных.

Вы можете сделать перечисление с 2 полями: Одна строка «внешнего представления», которую вы можете сохранить в базе данныхи один int, который представляет идентификатор ресурса.Вам также понадобится способ восстановить перечисление из строкового представления, например, используя карту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...