Форум программистов, компьютерный форум CyberForum.ru

Обновление ListView при изменении значений в базе SQLite - Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
y_e_p
 Аватар для y_e_p
3 / 3 / 0
Регистрация: 15.09.2013
Сообщений: 27
22.07.2014, 16:04     Обновление ListView при изменении значений в базе SQLite #1
Доброго времени суток господа.
У меня такой вопрос.
Как лучше сделать обновление данных в ArrayList,а так же занесение данных в базу??
Обновление через потоки(Runnable) или через AsynkTask или через main thread??
В адаптере notifyDataSetChanged()???или есть другие способы?
Может у кого есть кусочки кода,чтобы я имел представление как такое сделать,голова уже болит просто.

Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
22.07.2014, 17:50     Обновление ListView при изменении значений в базе SQLite #2
когда закончите транзакцию с БД обновите данные в адаптере. Затем вызовите notifyDataSetChanged() или переназначьте листу измененный адаптер.
y_e_p
 Аватар для y_e_p
3 / 3 / 0
Регистрация: 15.09.2013
Сообщений: 27
23.07.2014, 00:18  [ТС]     Обновление ListView при изменении значений в базе SQLite #3
KillAndEat, так и делаю,по потокам не нужно разбивать,чтобы не нагружать UI???
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,068
23.07.2014, 08:05     Обновление ListView при изменении значений в базе SQLite #4
y_e_p, это смотря какой способ изменения данных, если длительный, то лучше переносить в отдельный поток, а по завершении его - обновлять ListView.
А запись в БД относительна быстра, поэтому ей поток не нужен, считаю.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
23.07.2014, 11:33     Обновление ListView при изменении значений в базе SQLite #5
Цитата Сообщение от Rube Посмотреть сообщение
А запись в БД относительна быстра, поэтому ей поток не нужен, считаю.
Но лучше всё равно выносить в отдельный поток.
y_e_p
 Аватар для y_e_p
3 / 3 / 0
Регистрация: 15.09.2013
Сообщений: 27
23.07.2014, 11:39  [ТС]     Обновление ListView при изменении значений в базе SQLite #6
YuraAAA, хорошо,а как лучше,через javовские Thread (или runnable) или через AsyncTask???
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
23.07.2014, 15:55     Обновление ListView при изменении значений в базе SQLite #7
y_e_p, все зависит от религии) Я таски не люблю и ипользую триды или лодеры.
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
26.07.2014, 22:28     Обновление ListView при изменении значений в базе SQLite #8
Сам недавно начал мучаться с AsyncTask. Использовал чужой код из многих классов, кое-как работает. Недавно обнаружил ещё один способ: работу через AsyncQueryHandler. Он устарел, или стоит им попробовать?
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
26.07.2014, 22:59     Обновление ListView при изменении значений в базе SQLite #9
CoolMind, если что то устаревает лучше не использовать это=) Чем вас обычные нити не устраивают? все предельно просто же.
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
26.07.2014, 23:00     Обновление ListView при изменении значений в базе SQLite #10
Писал для кого-то пример, может, найдете что-то полезное для себя:
https://bitbucket.org/sdex/contentproviderexample

SQLite + cupboard (ORM) + ContentProvider.
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
26.07.2014, 23:14     Обновление ListView при изменении значений в базе SQLite #11
KillAndEat, я пока ещё не определился, устарело или нет, надо побольше почитать... Про AsyncTask, как говорится, на каждому углу пишут, а вот про другие способы - поменьше. Нити, кстати, тоже неплохой способ (но я им ещё не пользовался ни разу). Спасибо за предложение.

Добавлено через 6 минут
Netscape, спасибо за пример.
Вообще, для меня работа с БД в Android (вместе с этой Java) - это просто мрак. Начиная с самой СУБД SQLite, заканчивая обменом данными с сервером. Писать кучу каких-то адаптеров, циклом грузить их в курсоры, выводить данные через курсоры в ListView, который описан в XML, который состоит из полей, которые тоже описаны в XML, копировать базу данных из assets в другое место без возможности сохранить изменённую базу обратно в assets. Опять же, непонятно к чему созданные события onCreate и onUpgrade, которых нет в "нормальных" базах. Ну это просто мазохизм. И чем дальше узнаю, тем больше понимаю, что такого извращённого способа работы с БД, какой придумали в Android, я ещё не видел.
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
26.07.2014, 23:21     Обновление ListView при изменении значений в базе SQLite #12
CoolMind, я думаю, нужно просто привыкнуть. Первоее время я тоже плевался, писал сам запросы для создания таблиц и т.п. А потом привык, открыл для себя ORM, курсор адаптер, контент провайдер и мне понравилось.
onCreate - вызывается только один раз, когда базы нет.
onUpgrade - вызывается когда меняется версия БД, и там можно, например добавить в уже готовую базу новые поля и таблицы.
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,068
27.07.2014, 11:43     Обновление ListView при изменении значений в базе SQLite #13
Цитата Сообщение от CoolMind Посмотреть сообщение
Писать кучу каких-то адаптеров, циклом грузить их в курсоры, выводить данные через курсоры в ListView, который описан в XML, который состоит из полей, которые тоже описаны в XML
Толи дело Access)
CoolMind
411 / 394 / 65
Регистрация: 06.10.2012
Сообщений: 1,701
28.07.2014, 01:11     Обновление ListView при изменении значений в базе SQLite #14
Netscape, спасибо за информацию. Про ORM мельком глянул на Хабре и понял, что пока не готов его применить.
Всегда удивлял onUpgrade. Подскажите, пожалуйста, а нельзя ли просто снести пользовательскую базёнку и записать на это место новую версию базы из APK?
Rube, точно. Сам много лет в нём программировал и привык к простоте форм и запросов, после этого возня с адаптерами кажется излишней. Я с удовольствием спрыгнул с Аксесса и решил заняться новыми технологиями. Сначала было трудно, мало что понятно, но со временем привыкаешь, а потом становится даже легче, и большинство проблем описано на stackoverflow. Правда, периодически приходится бороться с Android Studio и Gradle, а на Eclipse без смеха смотреть уже невозможно.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2014, 16:05     Обновление ListView при изменении значений в базе SQLite
Еще ссылки по теме:

Android SQLite and ListView. Ввод и вывод данных
Идентификация ListView + SQLite Android
Android Картинка из SQLite в ListView
Android Обновление строки в sqlite
Android Как записывать данные из SQLite в ListView

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Netscape
 Аватар для Netscape
371 / 358 / 48
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
28.07.2014, 16:05     Обновление ListView при изменении значений в базе SQLite #15
Цитата Сообщение от CoolMind Посмотреть сообщение
а нельзя ли просто снести пользовательскую базёнку и записать на это место новую версию базы из APK?
можно, если не нужна информация которая была внесена туда пользователем.
Yandex
Объявления
28.07.2014, 16:05     Обновление ListView при изменении значений в базе SQLite
Ответ Создать тему
Опции темы

Текущее время: 20:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru