Ответ 1
@Override
public boolean onQueryTextSubmit(String query) {
// Your search methods
searchView.clearFocus();
return true;
}
Прямо в точку и очистить.
Хорошо, поэтому у меня есть активность, где есть EditText, и на ввод ключевых результатов поиска отображаются, поэтому я просто хочу закрыть клавиатуру, когда результаты поиска будут показаны, чтобы не дать пользователю Это. Однако, если пользователь хочет уточнить свой поиск, клавиатура должна открыть резервную копию, если он снова войдет в EditText.
Это было сложнее, чем я себе представлял, я искал и пробовал несколько вещей, которые даже не закрывают клавиатуру на моем HTC, один метод, когда для InputType установлено значение INPUT_NULL, закрывает клавиатуру, t после этого.
Любые предложения о том, как это сделать?
@Override
public boolean onQueryTextSubmit(String query) {
// Your search methods
searchView.clearFocus();
return true;
}
Прямо в точку и очистить.
Правильный способ сделать это:
imeOptions
на "actionSearch"
инициализировать слушателей для кнопки ввода и поиска (если предоставлено)
searchEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
performSearch();
return true;
}
return false;
}
});
view.findViewById(R.id.bigSearchBar_button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
performSearch();
}
});
Скрыть клавиатуру, когда пользователь нажимает на поиск. Чтобы убедиться, что клавиатура не будет отображаться, когда пользователь минимизирует и восстанавливает Activity
, вам необходимо удалить фокус с EditText
private void performSearch() {
searchEditText.clearFocus();
InputMethodManager in = (InputMethodManager)getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(searchEditText.getWindowToken(), 0);
... perform search ...
}
Я верю, что этот фрагмент кода закроет клавиатуру:
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
если не попробовать:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
сообщите мне, если они работают
Друг использует следующее, чтобы скрыть keybord this
InputMethodManager in = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
in.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
или используйте этот
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);