Java SearchView没有';不要显示语音按钮
您好,我正在尝试使用Android文档中的项目创建Searchview:Java SearchView没有';不要显示语音按钮,java,android,xml,voice,Java,Android,Xml,Voice,您好,我正在尝试使用Android文档中的项目创建Searchview: Searchview可以工作,但不显示语音按钮。 如你所见,我添加了所有内容。但有些东西缺失或出错了。 最重要的一行不是android:voiceSearchMode=“showVoiceSearchButton | LaunchRecognitor”/>吗 文件: 值showVoiceSearchButton是启用语音搜索所必需的,而第二个值launchRecognizer指定语音搜索按钮应启动一个识别器,将转录文本返
Searchview可以工作,但不显示语音按钮。 如你所见,我添加了所有内容。但有些东西缺失或出错了。 最重要的一行不是android:voiceSearchMode=“showVoiceSearchButton | LaunchRecognitor”/>吗 文件: 值showVoiceSearchButton是启用语音搜索所必需的,而第二个值launchRecognizer指定语音搜索按钮应启动一个识别器,将转录文本返回到可搜索活动
希望得到一些帮助。谢谢
<?xml version="1.0" encoding="utf-8"?>
<searchable
xmlns:android="http://schemas.android.com/apk/res/android"
android:hint="@string/search_hint"
android:label="@string/app_name"
android:voiceSearchMode="showVoiceSearchButton|launchRecognizer"/>
@覆盖
创建选项菜单(菜单菜单菜单,菜单展开器菜单展开器)上的公共无效{
菜单充气(R.menu.menu\u搜索,菜单);
final MenuItem searchItem=menu.findItem(R.id.action\u search);
最终SearchView SearchView=(SearchView)MenuItemCompat.getActionView(searchItem);
setOnQueryTextListener(这个);
}
@凌驾
公共布尔值onQueryTextSubmit(字符串查询){
返回false;
}
@凌驾
公共布尔onQueryTextChange(字符串newText){
newText=newText.toLowerCase();
列表=新的ArrayList();
食品(食品清单:mFoodList){
String name=String.valueOf(foodList.getHeader()).toLowerCase();
if(name.contains(newText)){
添加(食物列表);
}
}
mRecyclerAdapter.setFilter(列表);
返回true;
}
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/menu_main"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_stat_name"
android:title="@string/action_search"
app:actionViewClass="android.support.v7.widget.SearchView"
app:showAsAction="always|collapseActionView"/>
<item
android:id="@+id/menu_item_custom_one"
android:orderInCategory="1"
android:title="@string/test"
android:visible="true"
app:showAsAction="never"/>
<item
android:id="@+id/menu_item_custom_two"
android:orderInCategory="2"
android:title="@string/test"
android:visible="true"
app:showAsAction="never"/>
</menu>
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater menuInflater) {
menuInflater.inflate(R.menu.menu_search, menu);
final MenuItem searchItem = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem);
searchView.setOnQueryTextListener(this);
}
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
newText = newText.toLowerCase();
List<Food> list = new ArrayList<>();
for (Food foodList : mFoodList) {
String name = String.valueOf(foodList.getHeader()).toLowerCase();
if (name.contains(newText)) {
list.add(foodList);
}
}
mRecyclerAdapter.setFilter(list);
return true;
}
<activity
android:name=".activities.MainActivity"
android:theme="@style/AppTheme.Base">
<intent-filter>
<action android:name="android.intent.action.SEARCH"/>
</intent-filter>
<meta-data
android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>