Использование кнопки возврата Android внутри ActivityGroup - PullRequest
1 голос
/ 11 января 2012

Я занимаюсь разработкой приложения с использованием TabHost. Я использую кнопку возврата по умолчанию для Android, чтобы вернуться к предыдущему действию из текущего действия, переопределив метод onBackPressed () внутри ActivityGroup каждой вкладки.

Теперь проблема в том, что в одном из моих занятий у меня есть EditText, который фокусируется, когда начинается действие. Затем, если я нажму назад, он не перейдет к предыдущему действию, вместо этого он закроет приложение. При поиске проблемы в Интернете я обнаружил, что когда EditText фокусируется, который является дочерним представлением вида деятельности, фокус потери активности, а затем, если нажата кнопка «Назад», из-за отсутствия фокуса на текущей активности закрывается приложение. Тем не менее, я немного сбит с толку или, может быть, не совсем ясно о проблеме.

Итак, как бы то ни было, мне удалось установить и убрать фокус на EditText во время выполнения с помощью кода. Но все же сейчас, так как EditText не имеет фокуса, если нажать кнопку «Назад», приложение закрывается. Я действительно смущен тем, что на самом деле происходит. Итак, если у кого-то есть идеи или решения по поводу проблемы, пожалуйста, помогите по этому вопросу. Я буду очень признателен за это. Спасибо.

Ответы [ 3 ]

1 голос
/ 11 января 2012

Вы можете переопределить это поведение, добавив Key Listener к вашему EditText.Попробуйте,

    name_edit.setOnKeyListener(new OnKeyListener() {

        public boolean onKey(View v, int keyCode, KeyEvent event) {

            if (event.getAction() == KeyEvent.ACTION_DOWN
                    && event.getKeyCode() == KeyEvent.KEYCODE_BACK) {
                Log.i("Back event Trigered", "Back event");
                activitygroup.back();
            }
            return false;
        }
    });
0 голосов
/ 11 января 2012

попробуйте

 public void onBackPressed() {

      startActivity(new Intent(currentActivity.this, previousActivity.class));
        finish();
    }
0 голосов
/ 11 января 2012

попробуйте это ..

@Override
    public void onBackPressed() {
        onKeyDown(KeyEvent.KEYCODE_BACK, new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK));
        super.onBackPressed();
    }
...