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