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

Как правильно обновить данные для списка при изменении данных в другом фрагменте? - Android

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
247250
0 / 0 / 0
Регистрация: 24.08.2013
Сообщений: 18
25.08.2013, 17:15     Как правильно обновить данные для списка при изменении данных в другом фрагменте? #1
Здравствуйте.
Подскажите как правильно обновить данные для адаптера списка в главном фрагменте при изменении списка в дочернем фрагменте.
Простое приложение на фрагментах.
Есть список в главном фрагменте MainFragment и список в дочернем фрагменте ChildFragment.
Строки в главном списке отображают кол-во выделенных строк в дочернем.
Т.е. при клике на строку в главном списке открывается дочерний фрагмент со списком (мультивыбор).
Выделили там пару строк, нажали сохранить, открылся главный фрагмент и там циферка на данной строке изменилась.

Моя реализация:
1. при клике на строке в главном списке вызываю startActivityForResult(intent.putExtra("month", position), 6);
2. открывается ChildFragment, выбираю пару строк, сохраняю данные в бд. Вызываю getActivity().setResult(getActivity().RESULT_OK, intent); intent содержит новую циферку о кол-ве выделенных в доч. списке.
3. попадаю в MainActivity.onActivityResult. Новую циферку присваиваю глобальной переменной.
4. создаю public метод, который будет возвращать эту переменную.
5. попадаю в MainFragment - метод onResume. Там вызываю этот public метод и меняю данные для адаптера + sAdapter.notifyDataSetChanged(); В данной строке появилась новая циферка.

Мне кажется, что всё как-то сложно и есть более простой способ.
Спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.08.2013, 17:15     Как правильно обновить данные для списка при изменении данных в другом фрагменте?
Посмотрите здесь:

Android Как изменить заголовок вкалдки при изменении контента активити
Как правильно делать из своего проекта jar для использования в другом проекте Android
сохранить данные в фрагменте и после их вернуть Android
Android Как правильно присвоить переменным данные для использования с другом методе?
Элементы в Фрагменте не исчезают при выборе другой вкладки Android
Как правильно построить адаптер для показа данных из базы в ListView Android
Изменить из активити данные в фрагменте Android
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.08.2013, 17:36     Как правильно обновить данные для списка при изменении данных в другом фрагменте? #2
можно обойтись без глобальных переменных просто вызывая определенный метод фрагмента в onActivityResult.

Добавлено через 2 минуты
Цитата Сообщение от 247250 Посмотреть сообщение
при клике на строке в главном списке вызываю startActivityForResult
а зачем, если у вас все на фрагментах?
247250
0 / 0 / 0
Регистрация: 24.08.2013
Сообщений: 18
25.08.2013, 18:35  [ТС]     Как правильно обновить данные для списка при изменении данных в другом фрагменте? #3
Ну да, можно и наоборот, вызывать метод из фрагмента.
startActivityForResult потому что, у меня каждый фрагмент находится в своем активити.
При ландшафтной ориентации показываю оба фрагмента сразу в главном активити, а при портретной вызываю второе активити со своим фрагментом.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.08.2013, 18:56     Как правильно обновить данные для списка при изменении данных в другом фрагменте? #4
Цитата Сообщение от 247250 Посмотреть сообщение
startActivityForResult потому что, у меня каждый фрагмент находится в своем активити.
При ландшафтной ориентации показываю оба фрагмента сразу в главном активити, а при портретной вызываю второе активити со своим фрагментом.
при портретной можно просто заменять один фрагмент на другой без вызова активити.
247250
0 / 0 / 0
Регистрация: 24.08.2013
Сообщений: 18
25.08.2013, 21:35  [ТС]     Как правильно обновить данные для списка при изменении данных в другом фрагменте? #5
Цитата Сообщение от V0v1k Посмотреть сообщение
при портретной можно просто заменять один фрагмент на другой без вызова активити.
А какой же способ правильный?
Я смотрю в подобных примерах, почти везде создаются две активити со своими фрагментами.
А одна активити с несколькими фрагментами это когда делаешь что-то типа визарда. Мне так кажется.
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.08.2013, 21:54     Как правильно обновить данные для списка при изменении данных в другом фрагменте? #6
в примерах с экшенбарами вообще целая куча фрагментов в одном активити. зачем лишняя активити если весь функционал в фрагменте...
247250
0 / 0 / 0
Регистрация: 24.08.2013
Сообщений: 18
27.08.2013, 14:55  [ТС]     Как правильно обновить данные для списка при изменении данных в другом фрагменте? #7
на сайте http://developer.android.com показаны 2 способа построения программы, которая на больших экранах показывает 2 фрагмента,а на маленьком один на весь экран.
http://developer.android.com/guide/c...fragments.html - это когда у каждого фрагмента своя активити
http://developer.android.com/trainin...agment-ui.html - это когда одно активити для всех фрагментов

Вопрос: какой вариант и в каких случаях использовать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2013, 16:07     Как правильно обновить данные для списка при изменении данных в другом фрагменте?
Еще ссылки по теме:

Android Подгрузка данных при достижении конца списка
Android ListView - как добавлять данные из БД в начало списка?
Вывод во втором фрагменте длины текста, введённого в первом фрагменте активити Android
Как отследить закрытие/открытие drawer-а в другом фрагменте? Android
Android Как правильно сохранять/восстанавливать данные из Bundle

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

Или воспользуйтесь поиском по форуму:
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.08.2013, 16:07     Как правильно обновить данные для списка при изменении данных в другом фрагменте? #8
Цитата Сообщение от 247250 Посмотреть сообщение
Вопрос: какой вариант и в каких случаях использовать?
если нет видимых причин создавать дополнительную активити - не создавайте.
Yandex
Объявления
27.08.2013, 16:07     Как правильно обновить данные для списка при изменении данных в другом фрагменте?
Ответ Создать тему
Опции темы

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