Я на самом деле пытаюсь использовать встроенный поисковый интерфейс Android, но у меня возникают некоторые проблемы при попытке передать данные с помощью поискового запроса.
Вот краткое объяснение: у меня есть объект в первом действии (FirstActivity) под названием «Категория», который реализует Serializable (я уже успешно передал его между действиями), и я хочу выполнить поиск, связанный с этой категорией, и отобразить результаты во втором действии (SecondActivity).
Итак, в FirstActivity я переопределяю метод onSearchRequest:
@Override
public boolean onSearchRequested() {
Bundle appData = new Bundle();
appData.putSerializable("category", _currentCategory);
Log.d(Utils.LOG_TAG, "Bundle : "+appData.keySet());
startSearch(null, false, appData, false);
return true;
}
А в SecondActivity я пытаюсь получить этот комплект:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
handleIntent(getIntent());
}
private void handleIntent(Intent intent){
Bundle appData = intent.getBundleExtra(SearchManager.APP_DATA);
if(appData == null) Log.d(Utils.LOG_TAG, "appData == null");
Log.d(Utils.LOG_TAG, "Extras : "+intent.getExtras().keySet());
}
Проблема в том, что appData кажется равным нулю каждый раз. Вот вывод logcat:
Bundle : [category]
appData == null
Extras : [query, user_query]
Я пытался добавить некоторые другие объекты в Bundle (Booleans и т. Д.), Но это ничего не изменило, и у меня все еще есть нулевые данные appData.