У меня есть активность А (панели навигации), который запускает несколько фрагментовФрагмент выполняет метод из предыдущей деятельности, когда EditText сфокусирован
Активность А содержит это:
@Override
public void onBackPressed() {
//create dialog to close the app
}
Проблема заключается в том, что оно не имеет значения, где я, когда я касаюсь кнопки «Назад» и У меня есть EditText
, сфокусированный в текущем макете, он будет запустит диалог.
Это означает, что если я хочу закрыть приложение, я должен быть в главном окне и нажать кнопку «Назад», и он спрашивает меня, хочу ли я уйти. Но если я нахожусь в любом фрагменте и нажимаю кнопку «Назад», то фокусируется на EditText
, он также запускает диалог, переопределяя поведение кнопки «Назад», которую я установил в этом текущем фрагменте.
Когда я касаюсь кнопки назад на фрагменте этого является то, что он excecutes если EditText
не сфокусирован, которые работают отлично:
view.setFocusableInTouchMode(true);
view.requestFocus();
view.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//stuff
}
}
});
Если EditText
сфокусирован, он будет выполнять код для кнопки возврата в Управлении.