Разница между кнопкой на панели инструментов и методом onBackPressed - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть приложение, в котором есть несколько действий.В качестве примера можно привести мой MainActivity, в котором отображается список элементов, из которого можно открыть «подробный» обзор определенного элемента.

После того, как щелкните элемент, чтобы открыть его, я открываю другое действие, подобное этому

final Intent intent = new Intent(getApplicationContext(), AddActivity.class);
getApplicationContext().startActivity(intent);

Как только активность открывается на панели инструментов, у меня появляется кнопка «Назад».Я предполагаю, что эта кнопка выходит из коробки, так как я использую android.support.v7.widget.Toolbar.

В случае, если на MainActivity я прокрутил далеко в списке, а затем решил открыть новое действие и на этом новом действииЯ нажимаю кнопку «Назад» на панели инструментов. Мне возвращается значение MainActivity, но оно обновляется (вызывается метод OnCreate).

В случае, когда я открываю второе действие, и у него есть кнопка, которая выполняет какое-то действие и в конце возвращает вас к MainActivity, вызывая onBackPressed() из FragmentActivity, который расширен (путем расширения AppCompatActivity), онвернет вас к MainActivity, но без обновления вы сможете продолжить, где остановились.

Мой вопрос: возможно ли заменить текущее поведение кнопки "назад" на панели инструментов этим поведением onBackPressed()?

Ответы [ 2 ]

0 голосов
/ 10 ноября 2018

Просто вы можете переопределить метод onbackPressed и вызывать этот метод при нажатии кнопки "Назад" на панелях инструментов.

@Override
public void onBackPressed() {
   super.onBackPressed()
}

позвоните, когда эта кнопка нажата.

0 голосов
/ 10 ноября 2018

Я заставил это работать. Все, что мне нужно было сделать, это переопределить onSupportNavigateUp, чтобы получить одинаковое поведение на обеих кнопках.

@Override
public boolean onSupportNavigateUp() {
    onBackPressed(); // one inherited from android.support.v4.app.FragmentActivity

    return false;
}
...