3

我不敢相信我没有看到更多关于这个问题的讨论。我错过了那么明显的东西吗?

我在启用了语音的 SearchView 小部件上进行了活动。这是一个 singleTop 实例,因此相同的活动将能够捕获搜索意图。

当用户使用语音输入时,我想在实际搜索发生之前向用户显示查询文本以进行任何更正(如果需要)。

在我的 onNewIntent() 方法中,我处理搜索意图以从语音中检索查询文本并更新搜索文本框。

但是,只要我使用查询文本设置文本框,就会使用 SearchViews 文本触发新的搜索意图。我的 onNewIntent() 也收到了同样的信息。

这是一个无限循环。

我尝试设置 SearchView 的 OnQueryTextListener,希望监听器能直接从文本框中捕获搜索文本。然而,这并没有阻止新的搜索意图被触发。

我即将放弃 SearchView。考虑到我想拥有语音和建议功能,我希望有人可以建议我解决这个问题。

4

1 回答 1

2

固定的。问题是在文本框中显示查询文本的调用,searchView.setQuery(query, false) 有两个参数,第二个参数表示文本放入框后是否需要提交。我一定是从示例中复制了代码并且没有注意第二个参数。这是“真”,但在这种情况下应该是“假”。

于 2013-10-24T13:34:51.037 回答