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

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

Войти
Регистрация
Восстановить пароль
 
S4nchez
4 / 4 / 1
Регистрация: 25.08.2015
Сообщений: 56
#1

BackStack и Фрагменты - Программирование Android

01.12.2015, 14:19. Просмотров 660. Ответов 6
Метки нет (Все метки)

Из активити запускаю Фрагмент А, из Фрагмента А запускаю фрагмент Б, из Фрагмента Б запускаю фрагмент В. Если добавлять каждый фрагмент в BackStack, то по кнопке "назад" мы с фрагмента В перейдём на Б, а с Б на А. Как сделать так, чтобы я перешёл с фрагмента Б на фрагмент В и во фрагменте В при нажатии на кнопку назад я вышел из программы?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2015, 14:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос BackStack и Фрагменты (Программирование Android):

Когда пересчитывается backstack ? - Программирование Android
Расскажите товарищи опытные.... Имеется автивити с кучей фрагментов. пользователь может перемещаться от одного в другой, все перемещения...

Очистка BackStack Activity, без Intent - Программирование Android
У меня есть окно авторизации, и окно регистрации. То и то это активити, на которых расположены по одному фрагменту. Из регистрации...

Фрагменты и данные - Программирование Android
Добрый день, подскажите пожалуйста такую вещь, как можно передать из активити во фрагмент какой-то массив данных ну допустим...

Вложенные фрагменты - Программирование Android
Ребятушки, привет. У меня проблема с вложенными фрагментами. Мое приложение построено так: есть одно главное Activity, а также...

Фрагменты в Android - Программирование Android
Здравствуйте, появилась необходимость использования фрагментов, и тут возник вопрос: как использовать фрагмент несколько раз на одном...

Заменить Активити на Фрагменты - Программирование Android
Задумался над тем, чтобы заместо каждого Activity(у меня их 17 в приложении на данный момент) использовать фрагменты. Создать 1 главную...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kirawa
33 / 33 / 1
Регистрация: 12.11.2013
Сообщений: 336
01.12.2015, 17:59 #2
хитер, мне тоже надо это реализовать, но мне лень и я воспользовался пока Activity. Как нить сделаю.

Java
1
Stack<Fragment> fragmentStack;
Добавлено через 8 минут
а хотя тебе вроде что-то другое нужно ну попробуй с этим типом данных похимич
fraley
105 / 105 / 38
Регистрация: 24.05.2015
Сообщений: 317
02.12.2015, 12:11 #3
Цитата Сообщение от S4nchez Посмотреть сообщение
Из активити запускаю Фрагмент А, из Фрагмента А запускаю фрагмент Б, из Фрагмента Б запускаю фрагмент В. Если добавлять каждый фрагмент в BackStack, то по кнопке "назад" мы с фрагмента В перейдём на Б, а с Б на А. Как сделать так, чтобы я перешёл с фрагмента Б на фрагмент В и во фрагменте В при нажатии на кнопку назад я вышел из программы?
Зачем тогда сохранять фрагмент в BackStack если нужна логика выхода из приложения?
Pablito
2472 / 1917 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
02.12.2015, 12:39 #4
ну вот пример
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MainActivity extends AppCompatActivity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        getSupportFragmentManager().beginTransaction().add(R.id.contentPanel, new Frag1(), "TAG1").addToBackStack("1").commit();
        getSupportFragmentManager().beginTransaction().add(R.id.contentPanel, new Frag2(), "TAG2").addToBackStack("2").commit();
        getSupportFragmentManager().beginTransaction().add(R.id.contentPanel, new Frag3(), "TAG3").addToBackStack("3").commit();
    }
 
    @Override
    public void onBackPressed() {
        if (getSupportFragmentManager().findFragmentByTag("TAG3") != null) {
            finish();
        }
        super.onBackPressed();
    }
}
рассказываю
мы добавляем три фрагмента, а в onBackPressed() проверяем - если был добавлен третий фрагмент то завершить приложение

если закоментировать добавление третьего фрагмента то первые два будут "уходить" как и должно быть - по нажатию back button
S4nchez
4 / 4 / 1
Регистрация: 25.08.2015
Сообщений: 56
02.12.2015, 14:48  [ТС] #5
потому что из 2 фрагмента мне надо возвращаться в первый кнопкой назад, а из 3 по кнопке назад - выходить

Добавлено через 17 секунд
а можно использовать replace, заместо add?
Pablito
2472 / 1917 / 595
Регистрация: 12.05.2014
Сообщений: 6,741
Завершенные тесты: 1
02.12.2015, 15:07 #6
Цитата Сообщение от S4nchez Посмотреть сообщение
потому что из 2 фрагмента мне надо возвращаться в первый кнопкой назад, а из 3 по кнопке назад - выходить
к чему это сказано? в моем примере именно так и есть
Цитата Сообщение от S4nchez Посмотреть сообщение
а можно использовать replace, заместо add?
смысл?

вообще, если немного подумать головой то можно догадаться что без разницы - add или replace - логика все равно остается та же - проверяем наличие фрагмента 3 и если он есть то на кнопку back реагируем немного по-другому
S4nchez
4 / 4 / 1
Регистрация: 25.08.2015
Сообщений: 56
03.12.2015, 00:20  [ТС] #7
к чему это сказано? в моем примере именно так и есть
это я другому типу сказать хотел)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2015, 00:20
Привет! Вот еще темы с ответами:

Фрагменты наслаиваются друг на друга - Программирование Android
Добрый день. Не пойму почему фрагменты наслаиваются друг на друга В main активити в onCreate включается первый фрагмент, чтобы чтото...

SlidingTab - фрагменты с RecycleView (ListView) - Программирование Android
Здравствуйте, уважаемые разработчики. Из мануала хочу сделать так, что бы на каждой странице были разные RecycleView или ListView (например...

Как листать фрагменты в ViewPager по кнопке? - Программирование Android
Доброго дня. Есть фрагменты, Листаемые в ViewPager'е. Помимо возможности перелистывания фрагментов жестами (и в шапке, во вкладках)...

Не могу разобраться, как подключать Фрагменты - Программирование Android
Решил научится использовать фрагменты, и сразу же наткнулся на проблему (Не могу понять как их подключать) Использовал готовый шаблон...


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

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

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