Как определить действие для кнопки поиска? - PullRequest
1 голос
/ 24 сентября 2010

Я не использую SearchManager, но я создал свой собственный поисковый запрос. Я хочу, чтобы это отображалось, когда пользователь нажимает кнопку «Поиск». Как я могу это сделать?

Ответы [ 3 ]

0 голосов
/ 24 сентября 2010

Внутри вашего собственного приложения вы можете сделать это с помощью мониторинга onKeyDown(), AFAIK.

Внутри других приложений это невозможно, кроме как через кастомную прошивку.

0 голосов
/ 25 сентября 2010

Не уверен, сработает ли это или нет, но вы пытались расширить 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>
.
0 голосов
/ 24 сентября 2010

Если я вас правильно понимаю, вы спрашиваете, как начать поиск.Создайте 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

...