Android - Деятельность и навигация? - PullRequest
0 голосов
/ 08 июня 2011
  • Я перехожу из Activity1 в Activity2. На Activity 2 у меня есть клавиатура, и эта клавиатура остается на экране после выбора кнопки «Назад» и перехода к Activity 1.

Вот так яисправил эту проблему

    // This code is in Activity 2
@Override
public void onBackPressed() {
    startActivity(intentForActivity1);
    finish();
}

Это неправильное решение моей проблемы?Это плохая идея, чтобы обрабатывать кнопку назад вручную?

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Поскольку вы захватываете нажатие кнопки «назад», скорее всего, программная клавиатура не получает нажатие и, следовательно, не скрывает.

Попробуйте скрыть ее самостоятельно:

@Override
public void onBackPressed() {
    InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
    startActivity(intentForActivity1);
    finish();
}

См. Ответ Reto Meier для получения более подробной информации об этом способе скрытия клавиатуры: Закрыть / скрыть программную клавиатуру Android

1 голос
/ 08 июня 2011

Нет ничего плохого в переопределении кнопки возврата.Просто убедитесь, что поведение не смущает пользователя.

Кроме того, если вы когда-нибудь просто захотите скрыть программную клавиатуру (скажем, вы переключаетесь между вкладками или что-то в этом роде), вы можете использовать InputMethodManager .Вот ветка , где люди обсуждали способы сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...