Применяться onBackPressed в fragment

Как применяться onBackPressed() в одном fragment?

Оно не функционирует равно как в активности, далее я объясняю точно мой случай:

Я нуждаюсь, в том, что после того, как был во мне fragment нажав на кнопку "назад", которую приносят все назначенные по умолчанию android, этот переслал другого fragment

1
задан 23.07.2017, 17:14
0 ответов

Если ты используешь один FragmentManager, ответ довольно простой. Только добавь .addToBackStack(tag) в твою сделку. Пример:

    getFragmentManager().beginTransaction()
            .replace(R.id.container, MainFragment.newInstance(),"main").addToBackStack("main")
            .commit();
1
ответ дан 03.12.2019, 17:32
  • 1
    я изменю post размещая мой код, где я отпускаю с одного fragment до другого для того, чтобы ты показал меня, ты мог бы делать это? –  23.01.2017, 18:52
  • 2
    Ты попросил меня того, чтобы говорить тебе, как приводить поле ввода к сбою, и я дал тебе молот и гвоздь. Если ты хочешь, что он помогает тебе, помещать это, ты должен показывать мне твой дом. ;) Если ты хочешь má s помощь ты будешь должен иметь có я говорю, что ты сделал. в случае Android значь: Activity, có я говорю, где ты хочешь выполнить acció n (например один OnClickListener и в mayorí в случаев он ú til, добавляет layout классов, которые ты используешь. –  24.01.2017, 03:18

Я показываю тебе пример, как это делал я:

Это идет, когда ты будешь открывать фрагмент:

....replace(R.id.container, new ChatView()).addToBackStack(null)
                        .commit(); 

Внутри твоего фрагмента ты размещаешь метод onBackPressed()

@Override
    public void onBackPressed() {

        int count = getFragmentManager().getBackStackEntryCount();

        if (count == 0) {
            super.onBackPressed();
            getFragmentManager().popBackStack();
        } else {
            getFragmentManager().popBackStack();
        }

    }
1
ответ дан 03.12.2019, 17:32
  • 1
    внутри фрагмента не меня pertime или распознает метод onBackPressed () –  23.01.2017, 18:52
  • 2
    onBackPressed () это mé совсем Activity, которые он содержит твои фрагменты. ты должен делать один @Override там –  23.01.2017, 19:05
  • 3
    Erny такие как говорит Стефан, ты, должно быть, делаешь @Override, así это у меня есть наверху, если ты обращаешь внимание хорошо :) –  23.01.2017, 19:32

Регулярно именно Activity определяет сделку Фрагментов, самый простой выбор состоит в том, чтобы звонить onBackPressed() Activity который он содержит Fragment:

getActivity().onBackPressed();

и в методе onBackPressed() Activity ты реализуешь получение Fragment, что присоединился в BackStack.

@Override
public void onBackPressed() 
{
  if(getFragmentManager().getBackStackEntryCount() > 0)
    getFragmentManager().popBackStack();
  else
   super.onBackPressed();
}

Для того, чтобы это функционировало, помнит что добавляет фрагменты в BackStack с addToBackStack() :

fragmentManager.beginTransaction().replace(R.id.home_container, frag).addToBackStack(null).commit();
0
ответ дан 03.12.2019, 17:32
  • 1
    ok я это попробую, за чем оно последует, состоит в том, что уже он использовал этот метод veré как я это осуществляю, (привет @Elenasys как дела? ты была потеряна, я вручаю эту неделю иду нервов, у тебя есть время?) –  23.01.2017, 19:12
  • 2
    Что такой Erny весь bí в, твой проект - школы? –  23.01.2017, 19:21
  • 3
    помни, что я комментировал тебе, что это была диссертация (этот minú sculo и незначительная деталь xD) –  23.01.2017, 19:24
  • 4
    ohhhhhh - что-то важное в действительности! =) ° –  23.01.2017, 19:36
  • 5
    хороший, если у тебя есть время, и тебе не беспокоил изюм где-то здесь chat.stackexchange.com/rooms/52073/… (не смейся надо мной даже не делать чаты xD) –  23.01.2017, 19:43

Теги

Похожие вопросы