在Android上使用SearchManager获取片段搜索视图的结果



我在一个片段中有一个工作的搜索视图,并决定添加语音到它。我按照指南创建了一个单独的活动来保存结果。这在代码

下都可以正常工作
private fun handleIntent(intent: Intent) {
if (Intent.ACTION_SEARCH == intent.action) {
intent.getStringExtra(SearchManager.QUERY)?.also { query ->
// blahh blahh `blahhh`
}
}
}

我现在想把结果发送到片段上有搜索视图。从意图过滤器开始的操作(android.intent.action.SEARCH)的标准方法是什么?

我确实尝试将意图过滤器放在保存片段的活动上,但它似乎启动了一个新的实例,所以我不能使用findfragmentByTag。

感谢

任何人想这么做,你所要做的就是遵循文档

重载onNewIntent(intent: intent) {super.onNewIntent(意图)handleIntent(意图)}

private fun handleIntent(intent: intent) {

if (Intent.ACTION_SEARCH == intent.action) {
intent.getStringExtra(SearchManager.QUERY)?.also { query ->
Log.d(TAG, "handleIntent: Query received is $query")
binding.testSearchView.setQuery(query, false)
Log.d(TAG, "handleIntent: Complete")
}
}

}

一定要加上

android:launchMode="singleTop"

到具有SearchView的活动的清单。这将阻止新实例的出现。抱歉今天有点慢。

最新更新