Estoy usando AlertDialog.Builder para crear un cuadro de entrada, con EditText como método de entrada.
Desafortunadamente, el teclado virtual no aparece, aunque EditText está enfocado, a menos que lo toque explícitamente nuevamente.
¿Hay alguna manera de forzarlo a reventar?
He intentado lo siguiente, después de (AlertDialog.Builder) .show (); pero en vano.
InputMethodManager mgr = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
mgr.showSoftInput(input, InputMethodManager.SHOW_FORCED);
¿Alguien puede ayudar?
¡¡Gracias!!
Respuestas:
He hecho tal cosa
fuente
OnFocusChangeListener
enfoques me parecen demasiado y me causan problemas. Tienes que crear elAlertDialog
desde elAlertDialog.Builder
!setSoftInputMode
línea antesdialog.show()
o no funcionará. +1 para la solución correcta simple por ciertoMe las arreglé para resolverlo así:
fuente
Descubrí que el mismo código funciona correctamente en la tableta, el teclado aparece, pero en el teléfono no, por lo que investigar más parece apuntar a la opción "ajustar".
Estoy usando esto, se siente mucho más limpio.
fuente
SOFT_INPUT_STATE_ALWAYS_VISIBLE
. ComoSOFT_INPUT_STATE_ALWAYS_VISIBLE
va a bloquear los componentes de la interfaz de usuario del diálogo, dondeSOFT_INPUT_ADJUST_RESIZE
podrá cambiar el tamaño y "empujar hacia arriba" el diálogo.En mi caso, la única forma en que pude mostrar el teclado cuando se mostró el cuadro de diálogo fue agregando a mi
DialogFragment
:Tenga en cuenta SOFT_INPUT_STATE_ALWAYS_VISIBLE en lugar de SOFT_INPUT_STATE_VISIBLE .
De la documentación:
fuente
Cuando llamas a showDialog para mostrar un diálogo creado usando AlertDialog en onCreateDialog
Deberías poner el código aquí
fuente
Aquí se da una solución mucho mejor .
Sin solución.
EditText
se comporta como se esperaba.fuente
fuente
Esto ya fue respondido aquí . Usar un OnFocusChangeListener funcionó para mí.
fuente
En mi caso, no se mostraba SoftInputMode cuando lo configuré, que era antes de mostrar el cuadro de diálogo (después de crearlo). El siguiente código funcionó para mí donde configuré SoftInputMode después de mostrar el cuadro de diálogo.
Kotlin:
Java:
Espero que esto ayude a cualquiera que tenga el mismo problema que yo.
fuente
Prueba esto, funciona para mí
Si desea mostrar el teclado virtual:
Y si quieres ocultarlo:
fuente
fuente
Este problema se produce cuando se agrega EditText después de llamar a AlertDialog.onCreate.
https://developer.android.com/reference/androidx/appcompat/app/AlertDialog.Builder
Debes borrar la marca FLAG_ALT_FOCUSABLE_IM.
Dado que AlertDialog.show se llama en DialogFragment.onStart, puede insertar el código en DialogFragment.onStart.
O puede usar Dialog.setOnShowListener si no usa DialogFragment.
fuente