|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
|||||||||||
Как правильно построить адаптер для показа данных из базы в ListView10.02.2014, 11:32. Показов 4720. Ответов 21
Метки нет (Все метки)
Всем привет.
На данный момент все данные в программе хранятся в классе, есть адаптер для отображения данных в ListView:
Если можно - покажите пример кода или ссылку на подоюный проект. Спасибо
0
|
|||||||||||
| 10.02.2014, 11:32 | |
|
Ответы с готовыми решениями:
21
Как правильно декодировать файл для показа в TextBox Как правильно настроить фильтр для базы данных? Подскажите как правильно сформулировать структуру базы данных для EF core |
|
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
|
|
| 10.02.2014, 11:54 | |
Сообщение было отмечено NOSC как решение
Решение
NOSC, используйте Cursor Adapter http://startandroid.ru/ru/urok... anija.html
1
|
|
|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
|||||||
| 10.02.2014, 15:28 [ТС] | |||||||
|
Добавлено через 3 часа 27 минут Есть вот такой момент
0
|
|||||||
|
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
|
||
| 10.02.2014, 15:40 | ||
|
0
|
||
|
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
|
|
| 10.02.2014, 15:57 | |
|
NOSC, в адаптере вызываете метод setImageResourse для ImageView
Добавлено через 8 минут Но остерегайтесь OutOfMemory exception т.к. картинки едят много памяти. Советую почитать вот это http://developer.android.com/t... index.html Или используйте для отображения картинок стороннюю библиотеку Universal image Loader, например. Для него есть русские доки.
0
|
|
|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
|||||||
| 10.02.2014, 20:50 [ТС] | |||||||
Каким образом туда картинка "попадает"? Картинки хранятся в drawable ресурсах, в базе прописан просто идентификатор вида R.drawable.аа , пробовал картинки просто в assets положить и в базе прописать путь, но ошибка одна и та же на все картинки: Кликните здесь для просмотра всего текста
02-10 22:41:39.653: E/BitmapFactory(2359): Unable to decode stream: java.io.FileNotFoundException: /drawable/aa.png: open failed: ENOENT (No such file or directory)
02-10 22:41:39.653: I/System.out(2359): resolveUri failed on bad bitmap uri: /drawable/aa.png
0
|
|||||||
|
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
|
|
| 10.02.2014, 21:20 | |
|
Почитайте про кастомные адапторы
0
|
|
|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
|||||||||||||||||||||||
| 11.02.2014, 11:20 [ТС] | |||||||||||||||||||||||
|
Я подозвревал что должен возвращаться идентефикатор картинки из моего столбца "pic" в базе - но Появилась ругань (см выше), потом разместил картинки в assets и в ячейках базы указал путь к картинке - то же ругань. Я вилимо просто не понимаю каким образом тут должно быть реализовано. Подскажите, если не трудно. Спасибо Добавлено через 1 час 40 минут В общем прописал путь для файлов в assets и так же получил ошибки, но уже другого плана. Кто-нибудь может подсказать где я не прав? Кликните здесь для просмотра всего текста
02-11 11:01:13.937: W/ImageView(9802): Unable to open content: file:///android_asset/icons/aa.png
02-11 11:01:13.937: W/ImageView(9802): java.io.FileNotFoundException: /android_asset/icons/aa.png: open failed: ENOENT (No such file or directory) 02-11 11:01:13.937: W/ImageView(9802): at libcore.io.IoBridge.open(IoBridge.java:4 16) 02-11 11:01:13.937: W/ImageView(9802): at java.io.FileInputStream.<init>(FileInput Stream.java:78) 02-11 11:01:13.937: W/ImageView(9802): at java.io.FileInputStream.<init>(FileInput Stream.java:105) 02-11 11:01:13.937: W/ImageView(9802): at android.content.ContentResolver.openInpu tStream(ContentResolver.java:447) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.ImageView.resolveUri(Imag eView.java:636) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.ImageView.setImageURI(Ima geView.java:381) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.SimpleCursorAdapter.setVi ewImage(SimpleCursorAdapter.java:212) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.SimpleCursorAdapter.bindV iew(SimpleCursorAdapter.java:158) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.CursorAdapter.getView(Cur sorAdapter.java:250) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.AbsListView.obtainView(Ab sListView.java:2159) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.ListView.makeAndAddView(L istView.java:1831) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.ListView.fillDown(ListVie w.java:674) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.ListView.fillFromTop(List View.java:735) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.ListView.layoutChildren(L istView.java:1652) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.AbsListView.onLayout(AbsL istView.java:1994) 02-11 11:01:13.937: W/ImageView(9802): at android.view.View.layout(View.java:14008 ) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.LinearLayout.setChildFram e(LinearLayout.java:1663) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.LinearLayout.layoutVertic al(LinearLayout.java:1521) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.LinearLayout.onLayout(Lin earLayout.java:1434) 02-11 11:01:13.937: W/ImageView(9802): at android.view.View.layout(View.java:14008 ) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.FrameLayout.onLayout(Fram eLayout.java:448) 02-11 11:01:13.937: W/ImageView(9802): at android.view.View.layout(View.java:14008 ) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.LinearLayout.setChildFram e(LinearLayout.java:1663) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.LinearLayout.layoutVertic al(LinearLayout.java:1521) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.LinearLayout.onLayout(Lin earLayout.java:1434) 02-11 11:01:13.937: W/ImageView(9802): at android.view.View.layout(View.java:14008 ) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:01:13.937: W/ImageView(9802): at android.widget.FrameLayout.onLayout(Fram eLayout.java:448) 02-11 11:01:13.937: W/ImageView(9802): at android.view.View.layout(View.java:14008 ) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewRootImpl.performLayout( ViewRootImpl.java:1892) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewRootImpl.performTravers als(ViewRootImpl.java:1711) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewRootImpl.doTraversal(Vi ewRootImpl.java:989) 02-11 11:01:13.937: W/ImageView(9802): at android.view.ViewRootImpl$TraversalRunna ble.run(ViewRootImpl.java:4351) 02-11 11:01:13.937: W/ImageView(9802): at android.view.Choreographer$CallbackRecor d.run(Choreographer.java:749) 02-11 11:01:13.937: W/ImageView(9802): at android.view.Choreographer.doCallbacks(C horeographer.java:562) 02-11 11:01:13.937: W/ImageView(9802): at android.view.Choreographer.doFrame(Chore ographer.java:532) 02-11 11:01:13.937: W/ImageView(9802): at android.view.Choreographer$FrameDisplayE ventReceiver.run(Choreographer.java:735) 02-11 11:01:13.937: W/ImageView(9802): at android.os.Handler.handleCallback(Handle r.java:725) 02-11 11:01:13.937: W/ImageView(9802): at android.os.Handler.dispatchMessage(Handl er.java:92) 02-11 11:01:13.937: W/ImageView(9802): at android.os.Looper.loop(Looper.java:137) 02-11 11:01:13.937: W/ImageView(9802): at android.app.ActivityThread.main(Activity Thread.java:5226) 02-11 11:01:13.937: W/ImageView(9802): at java.lang.reflect.Method.invokeNative(Na tive Method) 02-11 11:01:13.937: W/ImageView(9802): at java.lang.reflect.Method.invoke(Method.j ava:511) 02-11 11:01:13.937: W/ImageView(9802): at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:795) 02-11 11:01:13.937: W/ImageView(9802): at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:562) 02-11 11:01:13.937: W/ImageView(9802): at dalvik.system.NativeStart.main(Native Method) 02-11 11:01:13.937: W/ImageView(9802): Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory) 02-11 11:01:13.937: W/ImageView(9802): at libcore.io.Posix.open(Native Method) 02-11 11:01:13.937: W/ImageView(9802): at libcore.io.BlockGuardOs.open(BlockGuardO s.java:110) 02-11 11:01:13.937: W/ImageView(9802): at libcore.io.IoBridge.open(IoBridge.java:4 00) 02-11 11:01:13.937: W/ImageView(9802): ... 49 more 02-11 11:01:13.937: I/System.out(9802): resolveUri failed on bad bitmap uri: file:///android_asset/icons/aa.png Добавлено через 58 минут
Кликните здесь для просмотра всего текста
02-11 11:54:27.813: E/AndroidRuntime(11495): FATAL EXCEPTION: main
02-11 11:54:27.813: E/AndroidRuntime(11495): java.lang.NumberFormatException: Invalid int: "pic" 02-11 11:54:27.813: E/AndroidRuntime(11495): at java.lang.Integer.invalidInt(Integer.jav a:138) 02-11 11:54:27.813: E/AndroidRuntime(11495): at java.lang.Integer.parse(Integer.java:375 ) 02-11 11:54:27.813: E/AndroidRuntime(11495): at java.lang.Integer.parseInt(Integer.java: 366) 02-11 11:54:27.813: E/AndroidRuntime(11495): at java.lang.Integer.parseInt(Integer.java: 332) 02-11 11:54:27.813: E/AndroidRuntime(11495): at java.lang.Integer.valueOf(Integer.java:4 90) 02-11 11:54:27.813: E/AndroidRuntime(11495): at com.site.test.MyCursorAdapter.setViewIma ge(MyCursorAdapter.java:18) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.SimpleCursorAdapter.bindV iew(SimpleCursorAdapter.java:158) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.CursorAdapter.getView(Cur sorAdapter.java:250) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.AbsListView.obtainView(Ab sListView.java:2159) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.ListView.makeAndAddView(L istView.java:1831) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.ListView.fillDown(ListVie w.java:674) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.ListView.fillFromTop(List View.java:735) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.ListView.layoutChildren(L istView.java:1652) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.AbsListView.onLayout(AbsL istView.java:1994) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.View.layout(View.java:14008 ) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.LinearLayout.setChildFram e(LinearLayout.java:1663) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.LinearLayout.layoutVertic al(LinearLayout.java:1521) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.LinearLayout.onLayout(Lin earLayout.java:1434) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.View.layout(View.java:14008 ) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.FrameLayout.onLayout(Fram eLayout.java:448) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.View.layout(View.java:14008 ) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.LinearLayout.setChildFram e(LinearLayout.java:1663) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.LinearLayout.layoutVertic al(LinearLayout.java:1521) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.LinearLayout.onLayout(Lin earLayout.java:1434) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.View.layout(View.java:14008 ) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.widget.FrameLayout.onLayout(Fram eLayout.java:448) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.View.layout(View.java:14008 ) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewGroup.layout(ViewGroup. java:4373) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewRootImpl.performLayout( ViewRootImpl.java:1892) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewRootImpl.performTravers als(ViewRootImpl.java:1711) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewRootImpl.doTraversal(Vi ewRootImpl.java:989) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.ViewRootImpl$TraversalRunna ble.run(ViewRootImpl.java:4351) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.Choreographer$CallbackRecor d.run(Choreographer.java:749) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.Choreographer.doCallbacks(C horeographer.java:562) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.Choreographer.doFrame(Chore ographer.java:532) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.view.Choreographer$FrameDisplayE ventReceiver.run(Choreographer.java:735) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.os.Handler.handleCallback(Handle r.java:725) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.os.Handler.dispatchMessage(Handl er.java:92) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.os.Looper.loop(Looper.java:137) 02-11 11:54:27.813: E/AndroidRuntime(11495): at android.app.ActivityThread.main(Activity Thread.java:5226) 02-11 11:54:27.813: E/AndroidRuntime(11495): at java.lang.reflect.Method.invokeNative(Na tive Method) 02-11 11:54:27.813: E/AndroidRuntime(11495): at java.lang.reflect.Method.invoke(Method.j ava:511) 02-11 11:54:27.813: E/AndroidRuntime(11495): at com.android.internal.os.ZygoteInit$Metho dAndArgsCaller.run(ZygoteInit.java:795) 02-11 11:54:27.813: E/AndroidRuntime(11495): at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:562) 02-11 11:54:27.813: E/AndroidRuntime(11495): at dalvik.system.NativeStart.main(Native Method) Поскольку присутствует в ошике, приведу кусок кода из калсса DataBase%
Кто может подсказать что тут не правильно? Я уже голову всю сломал, помогите пожалуйста. Добавлено через 1 час 19 минут Весь вопрос свелся к этой строчке:
0
|
|||||||||||||||||||||||
|
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
|
|
| 11.02.2014, 11:32 | |
|
Попробуйте COLUMN_IMG сделать int, или Integer.valueOf(DataBase.COLUMN_IMG) сделать отдельной строкой
0
|
|
|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
|
| 11.02.2014, 11:39 [ТС] | |
|
0
|
|
|
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
|
|
| 11.02.2014, 11:46 | |
|
а что вы хотите вообще получить?
0
|
|
|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
|||||||||||
| 11.02.2014, 11:50 [ТС] | |||||||||||
|
Хочу получить данные из базы в ListView:
0
|
|||||||||||
|
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
|
|
| 11.02.2014, 11:53 | |
|
Почитайте про кастомные адаптеры! Если вы сами пишете адаптер то у вас должен быть метод getView где вы будете присваивать данные строке в списке.
Добавлено через 1 минуту http://startandroid.ru/ru/urok... apter.html
0
|
|
|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
|||||||
| 11.02.2014, 12:00 [ТС] | |||||||
Просто у меня загвоздка только с ImageView - все остальное работает как надо
0
|
|||||||
|
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
|
|
| 11.02.2014, 12:12 | |
|
В таком случае зачем вы наследуете SimpleCursorAdapter и перегружаете setViewImage? Если наследуетесь извольте переопределить getView и остальные методы адаптера. А так используйте дефолтный SimpleCursorAdapter
0
|
|
|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
||
| 11.02.2014, 12:39 [ТС] | ||
|
Добавлено через 14 минут Вот такая ошибака выходит в логи - не понимаю как правильно сделать =( Кликните здесь для просмотра всего текста
02-11 14:38:37.179: E/BitmapFactory(18329): Unable to decode stream: java.io.FileNotFoundException: /R.drawable.aa: open failed: ENOENT (No such file or directory)
02-11 14:38:37.179: I/System.out(18329): resolveUri failed on bad bitmap uri: R.drawable.aa
0
|
||
|
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
|
|
| 11.02.2014, 14:41 | |
|
картинки хранятся в папке drawable а не в assets. Путь к ним выглядит как R.drawable.имя картинки
0
|
|
|
216 / 216 / 33
Регистрация: 26.12.2010
Сообщений: 691
|
|
| 11.02.2014, 14:45 | |
|
картинки можно хранить и в assets, но только вот способ получения разных из этих мест.
я бы все таки посоветовал написать свой небольшой адаптер, вышло бы намного быстрее и проще. а там уже без разницы что вы передадите, массив данных или курсор - работать будет в любом случаи
0
|
|
|
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
|
||||
| 11.02.2014, 14:51 [ТС] | ||||
|
Я не понимаю что именно не правильно в моем случае, в базе хранятся идентификаторы R.drawable.aa - но ошибка (см выше) возникает при любом раскладе. Помогите понять в чем проблема - когда дойдет, тогда и свой адаптер смогу написать. Спасибо
0
|
||||
|
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
|
||||||
| 11.02.2014, 15:37 | ||||||
|
Проблема в том что программа не находит картинку. Может с названием какой косяк. Или типом.
Добавлено через 4 минуты Позвольте отступление:
0
|
||||||
| 11.02.2014, 15:37 | |
|
Помогаю со студенческими работами здесь
20
SybaseIQ : построить схему данных для базы как правильно вывести информацию с базы данных? Как сделать правильно выборку из базы данных? Построить базы данных для учета времени работы строительного оборудования
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|