【问题标题】:Get Result in Fragment for SearchView using SearchManager on Android在 Android 上使用 SearchManager 在片段中获取 SearchView 的结果
【发布时间】:2021-03-05 14:20:14
【问题描述】:

我在片段中有一个有效的搜索视图,并决定为其添加语音。我按照指南创建了一个单独的活动来保存结果。这一切都适用于代码

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。

谢谢

【问题讨论】:

    标签: android android-activity searchview searchmanager


    【解决方案1】:

    任何尝试这样做的人,您所要做的就是按照文档进行操作

    覆盖 fun 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 的活动的清单。这可以防止新实例。抱歉今天有点慢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多