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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
247250
0 / 0 / 0
Регистрация: 24.08.2013
Сообщений: 18
#1

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

25.08.2013, 17:15. Просмотров 1418. Ответов 7
Метки нет (Все метки)

Здравствуйте.
Подскажите как правильно обновить данные для адаптера списка в главном фрагменте при изменении списка в дочернем фрагменте.
Простое приложение на фрагментах.
Есть список в главном фрагменте 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(); В данной строке появилась новая циферка.

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

Как правильно присвоить переменным данные для использования с другом методе? - Программирование Android
Привет всем! Есть такая проблема... есть push уведомления, и когда приходит уведомление их нужно добавить в массив для показа в...

Как обновить textview в фрагменте после обновления preference - Программирование Android
Вечер добрый. В общем потратил весь день что бы разобраться с этим вопросом, но все безуспешно. Необходимо обновить значение 2 textview...

Как отследить закрытие/открытие drawer-а в другом фрагменте? - Программирование Android
Всем привет! У меня в приложении есть drawer при переходе по какому то пункту открывается определенный фрагмент. Так вот как мне...

Как правильно делать из своего проекта jar для использования в другом проекте - Программирование Android
Сделал на основе примера проект для выбора цвета. В нем класс наследуемый от Dialog. Еще в проекте есть layout с разметкой для dialog и...

Как обновить данные в одной подчиненной форме при изменении данных в другой - MS Access
Вроде ничего сложного, но не получается... Ситуация такая: есть таблица с обработанным написаниями клиентов Таб1 и таблица с...

Не получается обновить данные в БД SQL Server при изменении данных в dataGridView - C#
ADO.NET C# Добавлено через 2 минуты using System; using System.Collections.Generic; using System.ComponentModel; using...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.08.2013, 17:36 #2
можно обойтись без глобальных переменных просто вызывая определенный метод фрагмента в onActivityResult.

Добавлено через 2 минуты
Цитата Сообщение от 247250 Посмотреть сообщение
при клике на строке в главном списке вызываю startActivityForResult
а зачем, если у вас все на фрагментах?
0
247250
0 / 0 / 0
Регистрация: 24.08.2013
Сообщений: 18
25.08.2013, 18:35  [ТС] #3
Ну да, можно и наоборот, вызывать метод из фрагмента.
startActivityForResult потому что, у меня каждый фрагмент находится в своем активити.
При ландшафтной ориентации показываю оба фрагмента сразу в главном активити, а при портретной вызываю второе активити со своим фрагментом.
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.08.2013, 18:56 #4
Цитата Сообщение от 247250 Посмотреть сообщение
startActivityForResult потому что, у меня каждый фрагмент находится в своем активити.
При ландшафтной ориентации показываю оба фрагмента сразу в главном активити, а при портретной вызываю второе активити со своим фрагментом.
при портретной можно просто заменять один фрагмент на другой без вызова активити.
0
247250
0 / 0 / 0
Регистрация: 24.08.2013
Сообщений: 18
25.08.2013, 21:35  [ТС] #5
Цитата Сообщение от V0v1k Посмотреть сообщение
при портретной можно просто заменять один фрагмент на другой без вызова активити.
А какой же способ правильный?
Я смотрю в подобных примерах, почти везде создаются две активити со своими фрагментами.
А одна активити с несколькими фрагментами это когда делаешь что-то типа визарда. Мне так кажется.
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
25.08.2013, 21:54 #6
в примерах с экшенбарами вообще целая куча фрагментов в одном активити. зачем лишняя активити если весь функционал в фрагменте...
0
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 - это когда одно активити для всех фрагментов

Вопрос: какой вариант и в каких случаях использовать?
0
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.08.2013, 16:07 #8
Цитата Сообщение от 247250 Посмотреть сообщение
Вопрос: какой вариант и в каких случаях использовать?
если нет видимых причин создавать дополнительную активити - не создавайте.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.08.2013, 16:07
Привет! Вот еще темы с ответами:

Как обновить данные в DataGridView при изменении записей в БД - Visual Basic .NET
Есть форма F1 с пустым датагридом. Я делаю двойной щелчок по ячейке и появляется форма F2 с набором записей. Я делаю двойной щелчок по...

Как правильно обновить данные поля со списком при переходе по записям? - MS Access
И снова здравствуйте... Есть форма Заказы с вложенной табличной формой СоставЗаказа. В этой вложенной форме есть поле Товар, куда пишется...

Как при изменении данных в одном справочнике перенести некоторые данные в него из другого справочника? - 1С
Подскажите пожалуйста! Возможно ли такое? Есть справочник "База контрагентов" так скажем, вспомогательный. В нем реквизиты "Наименование...

.NET 4.x Как обновить Xaml при изменении ObservableCollection - C# WPF
при изменении данных Xaml не обновляется, грешу на эту часть кода или ObservableCollection сам себя обновляет using...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.08.2013, 16:07
Ответ Создать тему
Опции темы

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