我已成功使用操作栏中的搜索小部件按照本指南执行搜索。搜索很好,但我想知道如何在搜索中传递其他变量。相同的指南指出我可以覆盖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}
.