SearchView可以同时具有voiceSearchButton和键盘的语音输入吗?

时间:2017-11-13 16:35:21

标签: android android-softkeyboard searchview voice

我正在为我的应用的搜索界面添加语音搜索功能。目前,它看起来像这样:

initial search interface

要添加语音搜索,我在可搜索配置中添加了voiceSearchMode,在SearchView中添加了一个按钮以触发语音对话框。界面现在看起来像这样:

enter image description here

但是,您可以在键盘的,键上看到,麦克风按钮现已禁用。我找不到任何关于如何再打开它的文档,唯一相关的问题解释了如何明确禁用它。

是否可以在SearchView中同时拥有系统的语音搜索对话框键盘的语音输入?

1 个答案:

答案 0 :(得分:1)

我知道这是一个老问题,但无法通过Google找到答案,因此以为我要添加在这里找到的内容。看一下SearchView的源代码后,我在setSearchableInfo中找到了以下内容:

BinaryTree()

然后我要做的是创建一个扩展SearchView的类,重写setSearchableInfo方法,并在调用super.setSearchableInfo之后添加以下内容:

if (mVoiceButtonEnabled) {  
  // Disable the microphone on the keyboard, as a mic is displayed near the text box  
  // TODO: use imeOptions to disable voice input when the new API will be available  
  mSearchSrcTextView.setPrivateImeOptions(IME_OPTION_NO_MICROPHONE);  
}  

现在我的键盘和SearchView中都有一个麦克风。

编辑:如果您在菜单中使用班级,别忘了引用班级。

SearchAutoComplete mSearchSrcTextView = findViewById(android.support.v7.appcompat.R.id.search_src_text);  
mSearchSrcTextView.setPrivateImeOptions("");