У меня есть скрытая программная клавиатура, потому что у меня есть пользовательская клавиатура в приложении. Когда щелкает edittext, мягкая клавиатура не должна всплывать. Итак, я пробовал так много способов из источников, но ничего не работало, кроме editText.setFocusable(false);
. Но теперь проблема edittext не подсвечивается, когда я щелкнул ее, и даже курсор не отображается. Я попытался использовать InputManager
, android:windowSoftInputMode="stateAlwaysHidden
в манифесте и упомянул много таких, как ссылка 1, link 2 и т.д., но эти методы по крайней мере даже не скрывают мягкую клавиатуру в моем приложении. Наконец, я получил это через setFocusable, но есть проблема подсветки, а проблема с невидимым курсором и даже requestFocus()
в onClickListener не работает. Может ли кто-нибудь дать точное решение этой проблемы? Приветствуется фрагмент кода.
Способ скрытия программной клавиатуры при условии неэффективности функций edittext в android
Ответ 1
Попробуйте это в классе активности
getwindow().setsoftInputMode(winowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Это предотвращает использование мягкой клавиатуры
Ответ 2
Попробуйте следующее:
InputMethodManager imm = (InputMethodManager)getSystemService( Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFomWindow( edittext.getWindowToken(), 0);
Ответ 3
используйте это в манифесте:
android:configChanges="orientation|keyboardHidden"
android:windowSoftInputMode="stateHidden"
Ответ 4
Вам нужно добавить какой-либо метод в менифист. просто добавьте этот код.. Он автоматически скроется, когда вы нажмете кнопку, чтобы получить значение.
Хотите скрыть программную клавиатуру, используйте этот код в методе прослушивания кликов.
InputMethodManager imm = (InputMethodManager) getSystemService (Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFomWindow(edittext.getWindowToken(), 0);
Надеюсь, этот код будет работать нормально.
Ответ 5
как насчет того, если вы редактируетеText.setOnTouchListener и когда вы создаете новый OnTouchListener, ничего не делайте:
editText.setOnTouchListener(new OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});