我正在为我的应用的搜索界面添加语音搜索功能。目前,它看起来像这样:
要添加语音搜索,我在可搜索配置中添加了voiceSearchMode
,在SearchView中添加了一个按钮以触发语音对话框。界面现在看起来像这样:
但是,您可以在键盘的,
键上看到,麦克风按钮现已禁用。我找不到任何关于如何再打开它的文档,唯一相关的问题解释了如何明确禁用它。
是否可以在SearchView
中同时拥有系统的语音搜索对话框和键盘的语音输入?
答案 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("");