Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
S4nchez
4 / 4 / 1
Регистрация: 25.08.2015
Сообщений: 56
#1

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

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

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

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

Очистка BackStack Activity, без Intent
У меня есть окно авторизации, и окно регистрации. То и то это активити, на...

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

Вложенные фрагменты
Ребятушки, привет. У меня проблема с вложенными фрагментами. Мое приложение...

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

Заменить Активити на Фрагменты
Задумался над тем, чтобы заместо каждого Activity(у меня их 17 в приложении на...

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

Java
1
Stack<Fragment> fragmentStack;
Добавлено через 8 минут
а хотя тебе вроде что-то другое нужно ну попробуй с этим типом данных похимич
0
fraley
110 / 110 / 43
Регистрация: 24.05.2015
Сообщений: 329
02.12.2015, 12:11 #3
Цитата Сообщение от S4nchez Посмотреть сообщение
Из активити запускаю Фрагмент А, из Фрагмента А запускаю фрагмент Б, из Фрагмента Б запускаю фрагмент В. Если добавлять каждый фрагмент в BackStack, то по кнопке "назад" мы с фрагмента В перейдём на Б, а с Б на А. Как сделать так, чтобы я перешёл с фрагмента Б на фрагмент В и во фрагменте В при нажатии на кнопку назад я вышел из программы?
Зачем тогда сохранять фрагмент в BackStack если нужна логика выхода из приложения?
0
Pablito
2653 / 2135 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 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
0
S4nchez
4 / 4 / 1
Регистрация: 25.08.2015
Сообщений: 56
02.12.2015, 14:48  [ТС] #5
потому что из 2 фрагмента мне надо возвращаться в первый кнопкой назад, а из 3 по кнопке назад - выходить

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

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

Фрагменты или активити
Добрый вечер! подскажите что лучше использовать и в каких случаях. Я особо...

Bottom Navigation Activity и фрагменты
Добрый день, коллеги. Никто не поможет мне разобраться в небольшом вопросе...

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

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


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

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

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