Tengo un diseño que contiene algunas vistas como esta:
<LinearLayout>
<TextView...>
<TextView...>
<ImageView ...>
<EditText...>
<Button...>
</linearLayout>
¿Cómo puedo configurar el foco (mostrar el teclado) en mi EditText
programáticamente?
He intentado esto y funciona solo cuando ejecuto mi Activity
normalmente, pero cuando lo ejecuto en un TabHost
, no funciona.
txtSearch.setFocusableInTouchMode(true);
txtSearch.setFocusable(true);
txtSearch.requestFocus();
android
focus
android-edittext
Houcine
fuente
fuente
Respuestas:
Prueba esto:
http://developer.android.com/reference/android/view/View.html#requestFocus ()
fuente
utilizar:
fuente
View
subclase)imm.showSoftInput()
no funciona.Esto funcionó para mí, gracias a ungalcrys
Mostrar teclado:
Ocultar teclado:
fuente
showSoftInput
no estaba funcionando para mí en absoluto.Pensé que necesitaba establecer el modo de entrada:
android:windowSoftInputMode="stateVisible"
(aquí en el componente Actividad en el manifiesto)¡Espero que esto ayude!
fuente
fuente
tb.post({ showKeyboard(tb) })
). Tenga en cuenta que necesitamos una vista EditText (tb
), no una vista fragmentaria.Así es como se puede hacer una extensión de kotlin para mostrar y ocultar el teclado virtual:
Entonces puedes hacer esto:
fuente
Recomiendo usar un LifecycleObserver que es parte de Handling Lifecycles with Lifecycle-Aware Components de Android Jetpack .
Quiero abrir y cerrar el teclado cuando aparece el Fragmento / Actividad. En primer lugar, defina dos funciones de extensión para EditText. Puede colocarlos en cualquier parte de su proyecto:
Luego defina un LifecycleObserver que abra y cierre el teclado cuando la Actividad / Fragmento alcance
onResume()
oonPause
:Luego agregue la siguiente línea a cualquiera de sus Fragmentos / Actividades, puede reutilizar el LifecycleObserver en cualquier momento. Por ejemplo, para un fragmento:
fuente
Aquí está la clase KeyboardHelper para ocultar y mostrar el teclado
fuente
Primera forma :
Segunda forma :
En manifiesto:
En codigo:
fuente
Lo intenté de muchas maneras y no funciona, aunque no estoy seguro porque estoy usando una transición compartida de fragmento a actividad que contiene el texto de edición.
Por cierto, mi texto de edición también está envuelto en LinearLayout.
Agregué un ligero retraso para solicitar el enfoque y el siguiente código funcionó para mí: (Kotlin)
showKeyboard ()
fuente
fuente
No pude obtener ninguna de estas respuestas para trabajar por su cuenta. La solución para mí fue combinarlos:
No estoy seguro de por qué eso era necesario para mí; según los documentos, parece que cualquiera de los métodos debería haber funcionado por su cuenta.
fuente