Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Marik1993
28 / 28 / 0
Регистрация: 27.03.2011
Сообщений: 156
1

Работа с фрагментами

26.08.2014, 14:07. Просмотров 981. Ответов 10
Метки нет (Все метки)

У меня такая ситуация, есть фрагмент с фильтрами и фрагмент с товарами. Когда я нажимаю на кнопку фильтровать в фрагменте с фильтрами как мне перейти в фрагмент с товарами? Ну сделать своего рода swipe и обновить содержимое.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.08.2014, 14:07
Ответы с готовыми решениями:

Работа с фрагментами
Здравствуйте! Имеется активити package com.example.des.farmer; import...

Работа с фрагментами
Ребят, помогите пожалуйста разобраться с работой с фрагментами. Создал фрагмент...

Операции с фрагментами
Если вызвать транзакцию remove для текущего фрагмента в контейнере. То...

Переход между фрагментами
Здравствуйте. Подскажите, как из одного фрагмента перейти на другой по нажатию...

Взаимодействие активити с фрагментами
Всем доброй ночи и у меня уже давно возник вопрос по поводу фрагментов, сижу...

10
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
26.08.2014, 14:45 2
Marik1993, Запаковать фильтры в Bundle, отправить их во фрагмент с товарами через setArguments. Там их принять через getArguments и по ним обновить.
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,326
27.08.2014, 00:04 3
а фрагмент кода можно приложить примерный??
0
Marik1993
28 / 28 / 0
Регистрация: 27.03.2011
Сообщений: 156
27.08.2014, 10:21  [ТС] 4
Ну я сделал по другому. Фильтра у меня отдельным классом. Вот код по переходу между фрагментами с обновлением:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.pager);
 
 Button filterButton = (Button) rootView.findViewById(R.id.button);
        filterButton.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
                setDataFilters();
 
                Fragment frg = null;
                frg = getFragmentManager().getFragments().get(0);
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.detach(frg);
                ft.attach(frg);
                ft.commit();
 
                viewPager.setCurrentItem(0);
            }
        });
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,326
27.08.2014, 22:55 5
а как передать переменную или картинку из одного фрагмента в другой используя метод setArguments ?? Можете привести фрагмент кода??
0
Marik1993
28 / 28 / 0
Регистрация: 27.03.2011
Сообщений: 156
28.08.2014, 11:04  [ТС] 6
Попробуйте так
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
ViewPager viewPager = (ViewPager) getActivity().findViewById(R.id.pager);
 
 Button filterButton = (Button) rootView.findViewById(R.id.button);
        filterButton.setOnClickListener(new View.OnClickListener() {
 
            @Override
            public void onClick(View v) {
                setDataFilters();
                
                //Строка с передачей изображения, в другом фрагменте создайте конструктур с входящим параметром
                Fragment frg = new YouFragment(bitmap);
                FragmentTransaction ft = getFragmentManager().beginTransaction();
                ft.detach(frg);
                ft.attach(frg);
                ft.commit();
 
                viewPager.setCurrentItem(0);
            }
        });
0
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
28.08.2014, 11:08 7
Цитата Сообщение от Marik1993 Посмотреть сообщение
ft.detach(frg); ft.attach(frg);
зачем?

данные передавать можно так.

Java
1
2
3
4
5
6
Bundle args = new Bundle();
args.put("filter1", "value1");
....
frg.setArgumetns(args);
ft.replace(frg,...)
ft.commit();
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,326
28.08.2014, 13:42 8
а во втором в принимающем данные фрагменте что будет??

Добавлено через 1 минуту
это в первом фрагменте передаются а во втором принимаются как ??
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
28.08.2014, 15:01 9
getArguments();

возвратит вам Bundle который вы отправили. Его и потрошите.

http://developer.android.com/reference/android/os/Bundle.html
0
yura91
1 / 25 / 2
Регистрация: 23.10.2013
Сообщений: 2,326
28.08.2014, 15:10 10
а как извлекать данные из Bunndle если мне допустим нужна картинка или целое??
0
KillAndEat
63 / 63 / 8
Регистрация: 17.05.2013
Сообщений: 286
28.08.2014, 15:24 11
проидите по ссылке которую я вам дал. Там куча методов на любой случай. Вас интересуют те которые начинаются с get. Если вам нужно передать какой то свой объект то в нем нужно сначала реализовать интерфейс Parcelable и использовать соответствующие методы.
0
28.08.2014, 15:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.08.2014, 15:24

Взимодействие между фрагментами
Суть такова - имеется всего одна активность. Она содержит фрагмент, на котором...

Сделать переключение между фрагментами
Здравствуйте. Подскажите как сделать переключение между фрагментами. Есть 3...

Подвисает ViewPager с фрагментами внутри
Собственно вот в чём соль. Есть ViewPager с фрагментами внутри, в каждом...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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