ita*_*ied 6 java android searchview
我search widget在我navigation drawer的应用程序中实现了Android .我已将其设置为打开键盘并editText在单击搜索图标时对焦.我想设置后退按钮(向上按钮)来隐藏键盘.我在网上搜索了R.id向上按钮,发现了这个android.R.id.home.所以我把它设置为:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
...
case android.R.id.home:
hideKeyboard();
break;
...
}
Run Code Online (Sandbox Code Playgroud)
我调试了代码并注意到点击navigation bar图标会激活android.R.id.home,但点击搜索小部件的向上按钮甚至都不会进入该onOptionsItemSelected(MenuItem item)功能.我也试过这个:
searchView.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (!hasFocus) {
hideKeyboard();
}
}
});
Run Code Online (Sandbox Code Playgroud)
但没有奏效.
按下后(向上)按钮时如何隐藏键盘?
设置搜索视图:
private void setSearchView(Menu menu) {
// Get the SearchView and set the searchable configuration
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
searchView = (SearchView) menu.findItem(R.id.search).getActionView();
// Assumes current activity is the searchable activity
searchView.setSearchableInfo(searchManager
.getSearchableInfo(getComponentName()));
searchView.setIconifiedByDefault(false);
SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
public boolean onQueryTextChange(String newText) {
Home.getFilter().filter(newText);
return true;
}
public boolean onQueryTextSubmit(String query) {
return true;
}
};
searchView.setOnQueryTextListener(queryTextListener);
}
Run Code Online (Sandbox Code Playgroud)
以下代码应该可以工作:
searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.setOnCloseListener(new OnCloseListener() {
@Override
public bool OnClose() {
searchView.clearFocus();
return true;
});
Run Code Online (Sandbox Code Playgroud)
然而,由于某种原因,这对我不起作用。:-/
我在这里找到了以下解决方法:
searchView = (SearchView) menu.findItem(R.id.search).getActionView();
searchView.addOnAttachStateChangeListener(new OnAttachStateChangeListener() {
@Override
public void onViewDetachedFromWindow(View v) {
searchView.clearFocus();
}
@Override
public void onViewAttachedToWindow(View v) {
}
});
Run Code Online (Sandbox Code Playgroud)
我认为 using 不会android.R.id.home起作用,因为我认为onOptionsItemSelected(android.R.id.home)只有在 SearchView 关闭后才会调用它。
| 归档时间: |
|
| 查看次数: |
666 次 |
| 最近记录: |