3

私のメイン アクティビティの onCreate() メソッドで、アクティビティの onCancel() メソッドへのコールバックを設定して、検索を発行せずにユーザーが検索ダイアログをキャンセルしたときに呼び出されるようにします (私は信じています)。これが私の登録コードです:

SearchManager searchManager = (SearchManager) getApplicationContext().getSystemService(Context.SEARCH_SERVICE);
searchManager.setOnCancelListener(this);

私のアクティビティは SearchManger.OnCancelListener を実装しており、私の onCancel() メソッドは現在 Log.d() ステートメントです。ただし、検索ダイアログをキャンセルするたびに (たとえば、戻るボタンを使用して)、このメソッドが呼び出されることはありません。

明確にするために、検索機能は実行時に問題なく機能します。ユーザーが検索ダイアログをキャンセルしたときに通知して、アクションを実行できるようにしたいだけです。また、要求されたときに画面の上部に表示されるデフォルトの Android 検索ダイアログを使用しています。

このコールバックをサポートするために、AndroidManifest.xml などで必要な設定はありますか? それとも、何か愚かなことを見逃している/やっているだけですか(完全に可能です)?

4

1 に答える 1

6

Activity コンテキストを使用する必要があります

SearchManager searchManager = (SearchManager) this.getSystemService(Context.SEARCH_SERVICE);

また、onCancelは明示的であり、戻るボタンによってトリガーされないため、onDismissListenerはonCancelよりも推奨されると思います

于 2011-04-19T22:32:17.413 に答える