ActivityGroup内的Android后退按钮利用率

时间:2012-01-11 13:03:49

标签: android view focus back-button activitygroup

我正在使用TabHost开发一个应用程序。我使用android默认后退按钮通过覆盖每个选项卡的ActivityGroup内的onBackPressed()方法从当前活动移回到先前的活动。

现在,问题是,在我的一个活动中,我有一个EditText,它会在活动开始时集中注意力。然后,如果我按回,它不会转到上一个活动,而是关闭应用程序。通过在互联网上搜索问题,我发现当EditText聚焦时,这是活动视图的子视图,活动丢失焦点,然后按下后退按钮,由于缺乏对当前活动的关注,它关闭了应用。我仍然有点困惑,或者可以说不清楚这个问题。

所以,无论如何,我已经设法在运行时使用代码设置和删除焦点在EditText上。但是现在,由于EditText没有焦点,如果按下后退按钮,它会关闭应用程序。我真的很困惑实际上发生了什么。所以,如果有人对这个问题有任何想法或解决方案,请帮助解决这个问题。我会非常感激。感谢。

3 个答案:

答案 0 :(得分:1)

您可以通过向EditText添加Key Listener来覆盖此行为。试试这个,

    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;
        }
    });

答案 1 :(得分:0)

试试这个..

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

答案 2 :(得分:-1)

试试这个

 public void onBackPressed() {

      startActivity(new Intent(currentActivity.this, previousActivity.class));
        finish();
    }