Клавиатура не отображается, когда я нажимаю на edittextview в android?
Когда я нажимаю на edittextview, несколько раз клавиатура отображается или несколько раз клавиатура не отображается.
В android 2.1 он показывает клавиатуру, когда я нажимаю на edittextview
но когда я запускаю такое же приложение на Android 2.2, он не отображает клавиатуру.
Помогите мне, как показать эту проблему.
Ответы
Ответ 1
ОК, Это может быть поздний ответ, но он сработал.
Я встретил эту проблему на Android 2.1 и 2.3.x(не тестировался в других версиях SDK).
Я заметил странную вещь, что, когда мой клик по EditText не смог открыть клавиатуру, я нажал кнопку BACK, чтобы отобразить диалоговое окно предупреждения, а затем я отменил (закрыл) его и снова нажал EditText, теперь клавиатура снова ожили.
Из этого я могу заключить, что клавиатура всегда будет отображаться для EditText, если EditText не имеет ранее собственного фокуса (показ диалогового окна предупреждения в окне EditText заставит EditText потерять фокус).
поэтому вызовите функцию ниже на вашем EditText, когда она будет перенесена на передний план:
mEditText.clearFocus();
или
parentViewThatContainsEditTextView.clearFocus();
Ответ 2
У меня была аналогичная проблема на Galaxy S3 (отображение элементов управления EditText на PopupWindow - клавиатура никогда не показывалась). Это решило мою проблему:
final PopupWindow popUp = new PopupWindow(vbl.getMainLayout());
[....]
popUp.setFocusable(true);
popUp.update();
Ответ 3
здесь возможное решение:
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);
}
});
}
}
});
код основан на следующей ссылке:
http://turbomanage.wordpress.com/2012/05/02/show-soft-keyboard-automatically-when-edittext-receives-focus/
Ответ 4
Я не хотел, чтобы EditText терял фокус, используя editText.clearFocus()
. Подходите к этому решению.
@Override
public void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT < 11) {
editText.clearFocus();
editText.requestFocus();
}
}
Ответ 5
В моем случае это было в PopupWindow
, и мне просто нужно было позвонить popupWindow.setFocusable(true)
Ответ 6
Он работает как шарм. В случае, если вы даже хотите скрыть щелчок 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);
}
}
Ответ 7
Возможные сценарии:
1) При нажатии EditText обычно появляется клавиатура. Но если вы нажмете кнопку "назад" в эмуляторе, клавиатура (а не экранная клавиатура) разрядится.
2) В коде вы можете отключить клавиатуру, щелкнув EditText, установив флаг.
InputMethodManager inputmethodmgr= (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
inputmethodmgr.hideSoftInputFromWindow(myEditText.getWindowToken(), 0);
Ответ 8
У меня была такая же проблема при отображении EditText в DialogFragment. Несмотря на то, что EditText получил фокус (т.е. При щелчке на нем отображалась мигающая каретка), клавиатура не отображалась.
Моим решением было добавить фиктивный EditText в самый верхний вид моего DialogFragment.
<EditText
android:id="@+id/editTextFix"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/fix"
android:importantForAutofill="no"
tools:targetApi="o"
android:inputType="text"
android:visibility="gone"/>