2016-10-01 4 views
1

Я пытаюсь сделать приложение, которое имеет DrawerActivity в качестве основного вида деятельности. Я реализовал в нем 8 фрагментов, которые соответствуют каждому элементу в ящике. Теперь проблема заключается в том, что всякий раз, когда я пытаюсь нажать кнопку «Назад», чтобы вернуться к фрагменту DrawerActivity, я в конечном итоге выхожу из приложения. Я уже три дня искал на форумах и не нашел для этого никакого решения. Довольно расстроенный, я глупо удалил свой код, поэтому я не могу показать его прямо сейчас. Может ли кто-нибудь просто объяснить мне, как мне выйти из фрагмента с помощью кнопки «Назад» и вернуться к моей основной деятельности?Как выйти из фрагмента и вернуться к активности моего ящика с помощью кнопки «Назад»?

Текущий сценарий: DrawerActivity содержит восемь фрагментов, все независимо друг от друга. Назовем их фрагментами от A до H. Когда я перейду к фрагменту A, я должен открыть navigationDrawer и перейти к любым другим фрагментам от B до H. Однако при нажатии кнопки «Назад» я также должен быть в состоянии вернуться назад на главную страницу активности ящика.

Вещи, которые я пробовал, которые не работают
1. Использование onBackPressed и popBackStack.
2. Создание пользовательского прослушивателя.
3. Использование фрагментации.

+0

К ', чтобы вернуться к основному page' выдвижного ящика на данный вид деятельности вы имеете в виду, возвращаясь к первому фрагменту или к деятельности? –

+0

Я хочу вернуться к активности, потому что фрагмент является частью деятельности, верно? Например, если у меня есть «HELLO», отображаемое на странице активности, я перехожу к фрагменту и снова отжимаю, я снова смогу увидеть «HELLO». – CannonBaller9Pin

+0

@ CannonBaller9Pin Определил ли вы текстовый файл «HELLO» TextView (или любой другой вид, который вы используете для отображения текста) в XML-файле? –

ответ

0

Вы пробовали переопределить onBackPressed() без вызова метода суперкласса? (Так что вы предотвратите отделка() от призыва.)

@Override 
public void onBackPressed() { 
    //show Fragment A 
} 

Вызов его без «super.onBackPressed()» и он должен работать.

+0

Я не хочу возвращаться к другому фрагменту из моего текущего фрагмента. Я хочу вернуться к активности, которая запустила фрагмент. – CannonBaller9Pin

0

Я не могу поверить, насколько я глуп. Я использовал свое приложение Gmail на своем телефоне, когда вдруг понял, что первый фрагмент активности ящика всегда является фрагментом по умолчанию, и приложение должно всегда возвращаться к нему на кнопку «Назад». Я думал, что активность ящика вернется в исходное состояние, когда будет нажата кнопка, но я не учитывал тот факт, что фрагменты являются частью самой активности. Спасибо всем за то, что вы пытаетесь понять мою проблему, что совсем не проблема ... Кажется, я чему-то научился, несмотря на себя.

0

Вы должны добавить фрагмент к андроида назад Stack как это:

getSupportFragmentManager() 
      .beginTransaction() 
      .replace(R.id.your_container,fragment,fragment.TAG) 
      .addToBackStack(null) 
      .commit();