如何解决在 Android 上使用 SearchManager 获取 SearchView 片段中的结果
我在片段中有一个可用的搜索视图,并决定为其添加语音。我按照指南创建了一个单独的活动来保存结果。这一切都适用于代码
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(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 的活动的清单。这会阻止新实例。抱歉今天有点慢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。