Я успешно использую виджет поиска в своей панели действий, чтобы выполнить поиск, следующий этому руководству. Поиск в порядке, но мне интересно, как передать дополнительные переменные в поиске. В тех же руководящих состояниях я могу переопределить 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}
.