我有这个布局

两个 SearchView 小部件
一个 ListView
当我按下 android 后退键时,焦点会在过滤框和搜索框之间循环。
我想回到我以前的活动,但我做不到,因为后退键只能从一个盒子转到另一个盒子。
如何获得后退按键事件?
这段代码甚至没有被调用
@Override
public void onBackPressed() {
setResult(Activity.RESULT_CANCELED);
super.onBackPressed();
}
我有这个布局

两个 SearchView 小部件
一个 ListView
当我按下 android 后退键时,焦点会在过滤框和搜索框之间循环。
我想回到我以前的活动,但我做不到,因为后退键只能从一个盒子转到另一个盒子。
如何获得后退按键事件?
这段代码甚至没有被调用
@Override
public void onBackPressed() {
setResult(Activity.RESULT_CANCELED);
super.onBackPressed();
}
问题肯定出在 SearchView 小部件及其对焦点/后键的处理上。
我将 SearchViews 更改为 EditTexts
我将 QueryTextListeners 更改为 TextWatchers
并且......瞧!
现在调用 onBackPressed() 并且活动可以返回到其先前的调用者。

您可以覆盖活动的 onBackPressed() 方法来执行您想要在按下后退键时执行的任何工作,例如
您可以在后退键按下时调用以前的活动......比如,
@override
public void onBackPressed ()
{
Intent intent = new Intent(CurrentActivity.this, PreviousActivity.class);
startActivity(intent);
finish();
}
我总是遇到麻烦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);
}