в одном из активити открывается клавиатура таким образом:
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(getCurrentFocus(), InputMethodManager.SHOW_FORCED);
В методaх onStop и onPause пытаюсь ее закрыть, чтобы при возврате к другому активити она спряталась. Закрываю так:
InputMethodManager imm = (InputMethodManager) (getSystemService(Context.INPUT_METHOD_SERVICE));
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
Но она не закрывается. Где ошибка?
Я гашу софт клавиатуру так:
public void hideKeyboard() {
InputMethodManager imm = (InputMethodManager) this.getSystemService(Activity.INPUT_METHOD_SERVICE);
//Find the currently focused view, so we can grab the correct window token from it.
View view = this.getCurrentFocus();
//If no view currently has focus, create a new one, just so we can grab a window token from it
if (view == null) {
view = new View(this);
}
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
Состояние клавиатуры определяется для каждой активити отдельно.
Т.е. не нужно ее прятать в onStop
или в onPause
для следующей активити.
Укажите в манифесте атрибут для тэга activity
android:windowSoftInputMode="stateHidden"
если хотите чтобы активити стартовала всегда со спрятанной клавиатурой.
Либо программно, как вы и делали, только в методах уже новой активити.
Как вариант программного решения
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
ЗдравстуйтеНеобходимо в программе реализовать возможность просмотра тв программы в epg виде
Я хочу сделать универсальную фабрику для DAO-классов, чтобы при добавлении не приходилось писать новый метод "getNewEntityDao"Мне подсказали как правильно...