Клавиатура не отображается, когда я нажимаю на edittextview в android?
Когда я нажимаю на edittextview, несколько раз клавиатура отображается или несколько раз клавиатура не отображается.
В android 2.1 он показывает клавиатуру, когда я нажимаю на edittextview
но когда я запускаю такое же приложение на Android 2.2, то он не показывает клавиатуру.
- EditText setError () со значком, но без всплывающего сообщения
- Проверка адреса электронной почты в Android на EditText
- Android: изменение размера только частей изображения с помощью мягкой клавиатуры на экране
- Сохранение содержимого EditText в RecyclerView
- Знание редактирования редактируемого текста
Помогите мне, как показать эту проблему.
- Отключение EditText в android
- Отключить мягкую клавиатуру из EditText, но разрешить копирование / вставку?
- ограничить edittext одной строкой
- Как нарисовать округленный прямоугольник в Android UI?
- Ограничить длину текста EditText в Android
- Как сделать EditText uneditable / disabled
- Как использовать class TextWatcher в Android?
- android EditText - завершение ввода текста
Хорошо, это может быть поздний ответ, но он сработал.
Я столкнулся с этой проблемой на Android 2.1 и 2.3.x (не тестировался в других версиях SDK).
Я заметил странную вещь, что, когда мой клик по EditText не смог открыть клавиатуру, я нажал кнопку BACK, чтобы отобразить диалоговое окно предупреждения, а затем я отменил (закрыл) его и снова нажал EditText, теперь клавиатура была жизнь снова.
Из этого я могу заключить, что клавиатура всегда будет отображаться для EditText, если EditText ранее не имеет собственного фокуса (показ диалогового windows предупреждения в окне EditText заставит EditText потерять фокус).
поэтому вызовите функцию ниже на вашем EditText, когда она будет перенесена на передний план:
mEditText.clearFocus();
или
parentViewThatContainsEditTextView.clearFocus();
У меня была аналогичная проблема на Galaxy S3 (отображение элементов управления EditText на PopupWindow – клавиатура никогда не показывалась). Это решило мою проблему:
final PopupWindow popUp = new PopupWindow(vbl.getMainLayout()); [....] popUp.setFocusable(true); popUp.update();
Я не хотел, чтобы EditText терял фокус, используя editText.clearFocus()
. Доходило до этого решения.
@Override public void onResume() { super.onResume(); if (Build.VERSION.SDK_INT < 11) { editText.clearFocus(); editText.requestFocus(); } }
вот возможное решение:
editText.setOnFocusChangeListener(new OnFocusChangeListener() { @Override public void onFocusChange(final View v, final boolean hasFocus) { if (hasFocus && editText.isEnabled() && editText.isFocusable()) { editText.post(new Runnable() { @Override public void run() { final InputMethodManager imm = (InputMethodManager)context.getSystemService(Context.INPUT_METHOD_SERVICE); imm.showSoftInput(editText,InputMethodManager.SHOW_IMPLICIT); } }); } } });
код основан на следующей ссылке:
В моем случае это было в PopupWindow
и мне просто нужно было вызвать popupWindow.setFocusable(true)
Он работает как шарм, в случае, если вы даже хотите скрыть щелчок edittextView.
textView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { displayKeyboard(); } }); private void displayKeyboard(){ if (textView != null) { InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); imm.toggleSoftInputFromWindow(textView.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); } }
Возможные сценарии:
1) При нажатии EditText обычно появляется клавиатура. Но если вы нажмете кнопку «назад» в эмуляторе, клавиатура (а не экранная клавиатура) разрядится.
2) В коде вы можете отключить клавиатуру, щелкнув EditText, установив флаг.
InputMethodManager inputmethodmgr= (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); inputmethodmgr.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);