Android: ViewFlipper и onBackPressed не отвечают

#java #android

#java #Android

Вопрос:

Разрабатываясь в Android 2.1, у меня есть макет ViewFlipper с 3 включениями, и я попытался явно заставить программу вернуться на одно включение при нажатии кнопки «Назад».

 @Override
public void onBackPressed() {
    switch (backStatus) {
    case 0: finish();
    case 1: //TODO Check save
    case 2: a.animateLeft(Flipper);
    case 99: setContentView(R.layout.main);
    }
}
 

Я также пытался использовать вызов onKeyDown / Up с тем же кодом.

Очевидно, что backStatus изменяется при переходе к другому включению. Проблема в том, и я приведу один пример … на 3-м («случай 2») включен список параметров, которые работают в include 2 . Если пользователь хотел отменить это и нажать кнопку «Назад» (для вызова .animateLeft(Flipper)), он должен сразу вернуться ко 2-му включению, но этого не происходит. Он возвращается прямо к 1-му включению. Кроме того, он отключает прослушиватели нажатий на кнопки, поэтому теперь ни один из них не отвечает.

Исключение «case 2» полностью отключает его при включении, что, очевидно, никуда не годится. Весь код для анимации влево и вправо отлично работает с экранных кнопок, и при переключении flippers передается правильный флаг backStatus. Кто-нибудь знает, как я могу решить эту маленькую проблему?

Заранее спасибо, ОУ.

Ответ №1:

используйте break; хотя бы во втором случае.