我目前正在使用ActionBar菜单项在操作栏中显示SearchView.当搜索菜单项被展开时,显示软键盘,这就是我想要的.现在,当用户按下后退按钮关闭软键盘时,我还想在操作栏中折叠SearchView.
我尝试在MenuItem和ActionView上实现以下侦听器OnKeyListener和OnFocusChangeListener.我也尝试在Activity中使用OnBackPressed().以上都没有检测到后退按钮用于关闭软键盘的时间.
有任何想法吗?
我已经实现了OnActionExpandListener来了解SearchView何时可见.
我在输入值后尝试清除并关闭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) 我在我的应用程序中使用searchview(没有操作栏).如何在查询文本提交后折叠searchview?
我有这些听众;
@Override
public boolean onQueryTextSubmit(String query) {
InputMethodManager imm = (InputMethodManager)thisFr.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(globalSearch.getWindowToken(), 0);
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
// TODO Auto-generated method stub
return false;
}
Run Code Online (Sandbox Code Playgroud)
我不使用ActionBar所以我没有像collapseActionView()这样的函数.
等待帮助
谢谢