我在我的应用程序中使用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;
}
我没有使用ActionBar所以我没有像collapseActionView()这样的函数。
等待帮助
由于
答案 0 :(得分:13)
你可以在你的活动中这样做,用actionbarsherlock测试(它甚至隐藏了键盘,确保在onQueryTextSubmit中返回false):
private MenuItem searchMenuItem;
public MenuItem getSearchMenuItem() {
return searchMenuItem;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// ...
searchMenuItem = menu.findItem(R.id.menu_search);
// ...
searchView.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
MenuItem searchMenuItem = getSearchMenuItem();
if (searchMenuItem != null) {
searchMenuItem.collapseActionView();
}
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
// ...
return true;
}
});
// ...
return super.onCreateOptionsMenu(menu);
}
答案 1 :(得分:13)
你需要调用setIconified(true)两次以实际折叠搜索视图,第一个调用文本将被第二个调用键盘清除,搜索视图将被关闭。
答案 2 :(得分:3)
如果您在选项菜单中使用搜索视图,则可以拨打invalidateOptionsMenu()
答案 3 :(得分:1)
//close suggestion list on query text submit
searchView.setIconified(true);
答案 4 :(得分:0)
final MenuItem searchterm = menu.findItem(R.id.search);
SearchView searchView = null;
searchView = (SearchView) searchterm.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
searchterm.collapseActionView();
}});