我在输入值后尝试清除并关闭SearchView.我找到了一个解决方案,但它会关闭搜索,如果我再次尝试搜索,则不会执行任何操作.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main_actions, menu);
searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
searchView.setOnQueryTextListener(searchListener);
return super.onCreateOptionsMenu(menu);
}
SearchView.OnQueryTextListener searchListener = new SearchView.OnQueryTextListener(){
@Override
public boolean onQueryTextChange(String arg0) {
return false;
}
@Override
public boolean onQueryTextSubmit(String query) {
new JsoupGetData("http://api.openweathermap.org/data/2.5/find?q="+ query + "&lang=pl").execute();
try {
searchView.onActionViewCollapsed();
}
catch(Exception ex){
ex.printStackTrace();
System.out.println(ex);
}
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
我只能第一次搜索.每次下次它只关闭我的输入键盘而什么都不做.如何以正确的方式执行?
编辑.建议的更改如下所示:
try {
searchView.setIconified(true);
}
Run Code Online (Sandbox Code Playgroud)
activity_main_actions.xml:
<!-- Search Widget -->
<item android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:title="@string/action_search"
android:showAsAction="always"
android:actionViewClass="android.widget.SearchView"/>
Run Code Online (Sandbox Code Playgroud)
EDIT2:
showAsAction="always|collapseActionView"当我点击搜索时,我改变但它关闭了我的应用程序.
我还将监听器放在OnCreateOptionsMenu中以查看它是否会改变任何内容:
@Override
public boolean onCreateOptionsMenu(Menu …Run Code Online (Sandbox Code Playgroud)