Вот как я это сделал:
У меня есть приложение, которое имеет несколько тем на выбор. Обычно, когда тема выбрана, а затем нажата кнопка «Назад», тема возвращается к предыдущей. Это проблема.
Я использовал трюк @Override для onBackPressed (), чтобы сделать трюк. Ниже приведен код (я также изменил код для первого действия в стеке [мой Навигационный ящик]).
@Override
public void onBackPressed()
{
Intent intent1 = new Intent(this, NavigationActivity.class);
startActivity(intent1);
super.onBackPressed(); // optional depending on your needs
}
Этот код в действии «Переключение темы» сделал его таким, чтобы обычный код кнопки «Назад» не вызывался, чтобы уничтожить текущее действие и вернуться к старой теме. Он просто переходит к предыдущему действию, в котором был пользователь, которое является моей навигационной активностью. Настройте это, как вы будете.
Еще одна вещь, на которую следует обратить внимание, это то, что кнопка «Назад» может по-прежнему мучить вас, даже если после этого она перейдет в NavigationActivity, и если я снова нажму кнопку «Назад», тема перевернется. Я вызвал тот же метод, что и раньше, но я вынул оператор super.onBackPressed();
, который и стал причиной возврата. Вот как это выглядит:
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
}
}
Надеюсь, это поможет вам!