1

SearchManagerを使用していませんが、独自のカスタム検索アクティビティを作成しました。ユーザーが[検索]ボタンをクリックしたときにこれが表示されるようにしたい。これどうやってするの?

4

3 に答える 3

0

私があなたを正しく理解しているなら、あなたはあなたの検索活動を始める方法を尋ねています。ボタン用のonClickListenerと、ユーザーがテキストを入力するためのEditTextフィールドを作成します。検索アクティビティのインテントをクエリして、ユーザーが[検索]ボタンをクリックしたときにユーザーが検索していたものをすべて取得します。

 EditText et = new EditText(this);

 public void onClick(View v){
     String searchText = et.getText();
     Intent intent = new Intent(this, com.example.app.SearchActivity.class);
     intent.putExtra("searchQuery", searchText);
     startActivity(intent);
 }

http://developer.android.com/guide/appendix/faq/commontasks.html#opennewscreen

于 2010-09-24T19:51:29.593 に答える
0

独自のアプリケーション内で、監視onKeyDown()、AFAIKを介してこれを行うことができます。

他のアプリケーションの内部では、これはカスタムファームウェアを介する場合を除いて不可能です。

于 2010-09-24T19:57:15.927 に答える
0

これが機能するかどうかはわかりませんが、検索の意図を捉えることができるBroadcastReceiverを拡張してみましたか?開発者リファレンスを確認すると、インテントは「android.search.action.GLOBAL_SEARCH」のようです。したがって、次のようなReceiverクラスがあります。

public class MyIntentReceiver extends BroadcastReceiver {
  @Override
  public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals("android.search.action.GLOBAL_SEARCH")) {
      Intent sendIntent = new Intent(context, MySearchActivity.class)
      context.startActivity(intent);
    }
  }
}

マニフェストでは、アプリケーションタグの間に、

<receiver android:name="MyIntentReceiver">
    <intent-filter>
        <action android:name="android.search.action.GLOBAL_SEARCH" />
    </intent-filter>
</receiver>
于 2010-09-24T20:15:58.960 に答える