После импорта картинки менюят свои ID
-
Ghost_64rus
- Сообщения: 5
- Зарегистрирован: 08 окт 2013, 14:58
После импорта картинки менюят свои ID
Есть список объектов с картинками, храню этот список в БД, т.е. на OnCreate БД в поле "картинка" передаю ID ресурса нужной картинки.
Но потом при импорте новых изображений в R.drawable, уже не связанных со списком объектов, изменяются ID тех изображений которые я сохранял в БД, и поэтому в списке с адаптером SimpleCursorAdapte картинки меняются местами или вообще выдают ошибку.
Сначала хотел на открытие БД делать Update на поле "картинка", чтобы там всегда были актуальные ID. Но мне кажется это затратно по времени.
Думал хранить в БД не ID ресурсов, а их название в виде строки и потом через getIdentifier получать ID, но как это передать в адаптер, там же передается название поля из БД???
Подскажите, как можно решить проблему???
Но потом при импорте новых изображений в R.drawable, уже не связанных со списком объектов, изменяются ID тех изображений которые я сохранял в БД, и поэтому в списке с адаптером SimpleCursorAdapte картинки меняются местами или вообще выдают ошибку.
Сначала хотел на открытие БД делать Update на поле "картинка", чтобы там всегда были актуальные ID. Но мне кажется это затратно по времени.
Думал хранить в БД не ID ресурсов, а их название в виде строки и потом через getIdentifier получать ID, но как это передать в адаптер, там же передается название поля из БД???
Подскажите, как можно решить проблему???
Re: После импорта картинки менюят свои ID
мне не понятно очень многое, хотя перечитала пару раз внимательно. Показывай все в кодах, структуру таблицы и конкретно что ты ам делаешь.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: После импорта картинки менюят свои ID
Хранить картинки в assets.Ghost_64rus писал(а):Подскажите, как можно решить проблему???
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: После импорта картинки менюят свои ID
та чего не понятного, он в бд записывает R.drawable.icon - их id с R файла что далеко не правильно =)
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
Ghost_64rus
- Сообщения: 5
- Зарегистрирован: 08 окт 2013, 14:58
Re: После импорта картинки менюят свои ID
прочитал про assets, я так понял для него R.java не генерирует ID,
и от туда можно вытащить картинки, указывая путь:
Тогда другой вопрос:
в БД я буду хранить путь к файлу в assets или InputStream этих файлов?
и что потом передавать в адаптер (например SimpleCursorTreeAdapter), чтобы в ExpandableListView все корректно отобразилось?
извиняюсь за тупые вопросы, только неделю андроид изучаю.
и от туда можно вытащить картинки, указывая путь:
Код: Выделить всё
InputStream ims = getAssets().open("image.png");
Drawable d = Drawable.createFromStream(ims, null);
в БД я буду хранить путь к файлу в assets или InputStream этих файлов?
и что потом передавать в адаптер (например SimpleCursorTreeAdapter), чтобы в ExpandableListView все корректно отобразилось?
извиняюсь за тупые вопросы, только неделю андроид изучаю.
Re: После импорта картинки менюят свои ID
да нормальные у тебя вопросы!
так и надо делать, все правильно!в БД я буду хранить путь к файлу
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
Ghost_64rus
- Сообщения: 5
- Зарегистрирован: 08 окт 2013, 14:58
Re: После импорта картинки менюят свои ID
залил картинку в assets
вот это работает:
в БД храню путь к файлу в таком виде: "/assets/image.png"
теперь в SimpleCursorTreeAdapter передаю поле с путем к файлу
и картинка не появляется в списке.
что делаю не так?
нужно создавать свой класс наследника от SimpleCursorTreeAdapter и переопределять какой-то метод? ну вернее один метод уже переопределяется getChildrenCursor.
вот это работает:
Код: Выделить всё
InputStream ims = getAssets().open("image.png");теперь в SimpleCursorTreeAdapter передаю поле с путем к файлу
и картинка не появляется в списке.
что делаю не так?
нужно создавать свой класс наследника от SimpleCursorTreeAdapter и переопределять какой-то метод? ну вернее один метод уже переопределяется getChildrenCursor.
Re: После импорта картинки менюят свои ID
даGhost_64rus писал(а):нужно создавать свой класс наследника от SimpleCursorTreeAdapter и переопределять какой-то метод?
R.id.team
Политика на форуме запрещена
Политика на форуме запрещена
-
Ghost_64rus
- Сообщения: 5
- Зарегистрирован: 08 окт 2013, 14:58
Re: После импорта картинки менюят свои ID
setViewImage ?rezak90 писал(а): да
-
Ghost_64rus
- Сообщения: 5
- Зарегистрирован: 08 окт 2013, 14:58
Re: После импорта картинки менюят свои ID
получилось, всем спасибо!
если кому нужно вот код, этот метод переопределить в наследнике адаптера SimpleCursorTreeAdapter, рядом с переопределенным методом getChildrenCursor из урока 53:
если кому нужно вот код, этот метод переопределить в наследнике адаптера SimpleCursorTreeAdapter, рядом с переопределенным методом getChildrenCursor из урока 53:
Код: Выделить всё
@Override
protected void setViewImage (ImageView v, String value) {
try {
// получаем входной поток
InputStream ims = getAssets().open(value);
// загружаем как Drawable
Drawable d = Drawable.createFromStream(ims, null);
// выводим картинку в ImageView
v.setImageDrawable(d);
}
catch(IOException ex) {
return;
}
}