Я успешно использую виджет поиска на панели действий для выполнения поиска в соответствии с этим руководством. . Поиск в порядке, но мне интересно, как передать дополнительные переменные при поиске. В том же руководстве говорится, что я могу переопределить onSearchRequested()
, но, похоже, это не работает с виджетом поиска.
Переопределение в вопросе:
@Override public boolean onSearchRequested() { Bundle appData = new Bundle(); appData.putString("KEY", "VALUE"); startSearch(null, false, appData, false); return true; }
Получение пакета в моем классе активности:
protected void onCreate(Bundle savedInstanceState) { // ... Intent intent = getIntent(); Bundle appData = intent.getBundleExtra(SearchManager.APP_DATA); String value = appData.getString("KEY"); Log.d("VALUE", value); // ... }
Мое приложение падает при создании класса поиска, потому что appData
всегда null
.
Примечание
onSearchRequested()
вызывается, но пакет не попадает в мой метод onCreate()
.
Все дополнения из переданного намерения {user_query=my-query, query=my-query}
.