2

我有这个布局

在此处输入图像描述

两个 SearchView 小部件
一个 ListView

当我按下 android 后退键时,焦点会在过滤框和搜索框之间循环。
我想回到我以前的活动,但我做不到,因为后退键只能从一个盒子转到另一个盒子。
如何获得后退按键事件?

这段代码甚至没有被调用

@Override
public void onBackPressed() {
    setResult(Activity.RESULT_CANCELED);
    super.onBackPressed();   
}
4

3 回答 3

1

问题肯定出在 SearchView 小部件及其对焦点/后键的处理上。
我将 SearchViews 更改为 EditTexts
我将 QueryTextListeners 更改为 TextWatchers
并且......瞧!

现在调用 onBackPressed() 并且活动可以返回到其先前的调用者。

在此处输入图像描述

于 2013-02-27T12:58:17.727 回答
0

您可以覆盖活动的 onBackPressed() 方法来执行您想要在按下后退键时执行的任何工作,例如

您可以在后退键按下时调用以前的活动......比如,

@override
public void onBackPressed ()
{
  Intent intent = new Intent(CurrentActivity.this, PreviousActivity.class);
  startActivity(intent);
  finish();

} 
于 2013-02-27T12:28:25.070 回答
0

我总是遇到麻烦onBackPressed。您应该尝试使用onKeyDownor onKeyUp

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)  {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
        // do something on back.
        return true;
    }

    return super.onKeyDown(keyCode, event);
}
于 2013-02-27T12:29:37.600 回答