2015-05-28 3 views
1

У меня есть активность А (панели навигации), который запускает несколько фрагментовФрагмент выполняет метод из предыдущей деятельности, когда 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 сфокусирован, он будет выполнять код для кнопки возврата в Управлении.

ответ

0

Кто-нибудь? Я уверен, что это связано с контекстом, фокусом или чем-то подобным, но все еще не может понять, почему

Смежные вопросы