2

私はこのレイアウトを持っています

ここに画像の説明を入力

2 つの SearchView ウィジェット
1 つの ListView

Android の戻るキーを押すと、フィルター ボックスと検索ボックスの間でフォーカスが循環します。
前のアクティビティに戻りたいのですが、戻るキーは 1 つのボックスから別のボックスにしか移動しないため、できません。
戻るキーを押すイベントを取得するにはどうすればよいですか?

このコードは呼び出されません

@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

私はいつも問題を抱えていましたonBackPressedonKeyDownまたはを使用してみてください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 に答える