У меня была такая же дилемма, как и у вас. Я объясняю. У меня есть активность, как работает с ViewFlipper. Мне нужно перейти к другому «макету», который я написал для тега ViewFlipper, и, когда я был в определенном «макете», который не является основным «макетом» действия, мне нужно вернуться к главному, нажав кнопка «назад», но она не работает так, как я хочу.
Чтобы разрешить эту дилемму, я переопределяю функцию OnBackPressed
, например:
@Override
public void onBackPressed() {
if (condition) {
// go to the main
} else {
super.onBackPressed();
}
}
где condition
, как следует из названия, откуда вы знаете, что находитесь в основной «раскладке»? Например, в моем ViewFlipper основной «макет» упорядочен по номерам, которые начинаются с 0, поэтому мой основной «макет» равен 0, и как я знаю, что я нахожусь в 0 «макете», viewflipper.getDisplayedChild()
. Если он возвращает 0, я остаюсь в основном «макете» или нет, в противном случае.
Так просто, но, я знаю, не так элегантно. Думаю, это может помочь вам.