1

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

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

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

4

3 回答 3

1

您可以通过将 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;
        }
    });
于 2012-01-11T13:10:44.047 回答
0

尝试这个..

@Override
    public void onBackPressed() {
        onKeyDown(KeyEvent.KEYCODE_BACK, new KeyEvent(KeyEvent.ACTION_DOWN,KeyEvent.KEYCODE_BACK));
        super.onBackPressed();
    }
于 2012-01-11T13:06:27.950 回答
-1

尝试这个

 public void onBackPressed() {

      startActivity(new Intent(currentActivity.this, previousActivity.class));
        finish();
    }
于 2012-01-11T13:50:18.373 回答