Я сделал логику для отображения диалогового окна подтверждения, когда пользователь нажимает кнопку «Назад», переопределяя метод backPressed, но это подразумевает необычное поведение.Если отображается клавиатура с программным вводом, при событии нажатия клавиши она должна быть скрыта, а другое событие нажатия клавиши должно запускать диалоговое окно подтверждения.Есть способ добиться этого?Может быть, путем обнаружения, если мягкая клавиатура ввода включена и пропустить диалог подтверждения?
Вот пример кода, чтобы прояснить это:
public boolean onKeyUp(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
//here is the mystery
if (soft keyboard is visible)
{
return super.onKeyUp(keyCode, event);
} else
{
//method which shows the close dialog and close the application
onBackPressed();
return true;
}
}
return super.onKeyUp(keyCode, event);
}