我正在尝试在我的应用程序的主要活动上实现搜索栏。为此,我使用了Android开发人员网站的文档。
我遵循说明,我有搜索栏,我可以在其中放一些查询。这里的问题是,在我第一次尝试进行搜索时,我必须在搜索图标上单击2次。
首先,我的酒吧看起来像一个默认的:默认搜索栏
我注意到图标显然不是白色,就像其中有一定的透明度,但我选择了一个完整的白色图标。
然后单击图标后,我的栏看起来像这样:搜索栏单击一次
图标向左走,我已经在搜索字段中有一个后按钮。
再次单击搜索图标时,我终于得到了我想要的结果:在编辑模式下搜索栏
当我退出搜索栏并再次执行此操作时,相同的是1或2次,然后,我的行为正常,我从第一个图像到最后一个单击。
这是我的文件:
菜单_app.xml
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/search"
android:title="@string/search"
android:icon="@drawable/ic_search"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.widget.SearchView" />
</menu>
androidmanifest.xml
<activity
android:name=".activities.MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.SEARCH"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data android:name="android.app.searchable"
android:resource="@xml/searchable"/>
</activity>
searchable.xml
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
android:label="@string/app_name"
android:hint="@string/search"/>
mainActivity.java
increateoptionsmenu @Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
// Associate searchable configuration with the SearchView
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
final SearchView searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
Log.d(TAG, s);
searchView.clearFocus();
return true;
}
@Override
public boolean onQueryTextChange(String s) {
Log.d(TAG, s);
return false;
}
});
return true;
}
预先感谢您的帮助!
我终于解决了它,请查看我的解决方案评论。