¿Existe una manera inteligente de permitir que el usuario cambie entre ocultar y ver la contraseña en un Android EditText? Varias aplicaciones basadas en PC permiten al usuario hacer esto.
176
Puede cambiar dinámicamente los atributos de un TextView. Si configurara el Atributo XML android:password
en verdadero, la vista mostraría puntos si lo configura en falso, se mostrará el texto.
Con el método setTransformationMethod deberías poder cambiar estos atributos del código. (Descargo de responsabilidad: no he probado si el método aún funciona después de que se muestra la vista. Si encuentra problemas con eso, déjeme un comentario para que lo sepa).
El código de muestra completo sería
yourTextView.setTransformationMethod(new PasswordTransformationMethod());
para ocultar la contraseña Para mostrar la contraseña, puede establecer uno de los métodos de transformación existentes o implementar un Método de transformación vacío que no hace nada con el texto de entrada.
yourTextView.setTransformationMethod(new DoNothingTransformation());
setTransformationMethod(null)
.Es realmente fácil de lograr desde la Biblioteca de soporte v24.2.0.
Lo que debes hacer es simplemente:
Agregue la biblioteca de diseño a sus dependencias
Usar
TextInputEditText
en conjunto conTextInputLayout
¡El
passwordToggleEnabled
atributo hará el trabajo!En su diseño raíz, no olvide agregar
xmlns:app="http://schemas.android.com/apk/res-auto"
Puede personalizar el cambio de contraseña usando:
app:passwordToggleDrawable
- Dibujable para usar como el icono de alternancia de visibilidad de entrada de contraseña.app:passwordToggleTint
- Icono para usar para alternar la visibilidad de entrada de contraseña.app:passwordToggleTintMode
- Modo de fusión utilizado para aplicar el tinte de fondo.Más detalles en la documentación de TextInputLayout .
Para AndroidX
Reemplazar
android.support.design.widget.TextInputLayout
concom.google.android.material.textfield.TextInputLayout
Reemplazar
android.support.design.widget.TextInputEditText
concom.google.android.material.textfield.TextInputEditText
fuente
android:text
atributo activadoTextInputEditText
. Siempre puede plantear un problema en Google Issues Tracker para Androidapp:passwordToggleDrawable
(en desuso) oapp:endIconDrawable
luego usar un dibujo personalizado como<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/ic_eye_close" android:state_checked="true"/> <item android:drawable="@drawable/ic_eye_open"/> </selector>
creo que Google debería solucionar este comportamiento. Buena discusiónPara mostrar los puntos en lugar de la contraseña, configure el Método de transformación de contraseña:
por supuesto, puede configurar esto de manera predeterminada en su elemento edittext en el diseño xml con
Para volver a mostrar la contraseña legible, simplemente pase nulo como método de transformación:
fuente
android:password
ahora está en desuso y debería usarloandroid:inputType
en su lugar.editText.getSelectionStart()
yeditText.getSelectionEnd()
para guardar la posición del cursor yeditText.setSelection(start, end)
para restaurarla.Mostrar:
Esconder:
Después de cada uno de estos, el cursor se reinicia, entonces:
fuente
Puedes usar
app:passwordToggleEnabled="true"
Aquí hay un ejemplo a continuación
fuente
app:endIconMode="password_toggle"
.Use la casilla de verificación y cambie el tipo de entrada en consecuencia.
fuente
...
...
fuente
Es un trabajo para mí. Esto definitivamente te ayudará
fuente
Siento que quiero responder a esta pregunta, incluso allí hay algunas buenas respuestas,
de acuerdo con la documentación Método de transformación hacer nuestra misión
Tenga en cuenta que uso un cuchillo de mantequilla, pero es lo mismo si la verificación del usuario muestra la contraseña
fuente
Puedo agregar el código ShowPassword / HidePassword con solo unas pocas líneas, independientes en un bloque:
fuente
Tuve el mismo problema y es muy fácil de implementar.
Todo lo que tiene que hacer es ajustar su campo EditText en un (com.google.android.material.textfield.TextInputLayout) y en ese complemento (app: passwordToggleEnabled = "true").
Esto mostrará el ojo en el campo EditText y cuando haga clic en él, la contraseña aparecerá y desaparecerá al hacer clic nuevamente.
fuente
fuente
En forma muy simple:
Espero eso ayude.
fuente
Puede MOSTRAR / OCULTAR la contraseña utilizando este código a continuación:
CÓDIGO XML:
CÓDIGO JAVA:
fuente
Prueba esto:
Primero defina una bandera como global de esta manera:
Y configure el oyente para que maneje el botón Mostrar y ocultar el botón de contraseña:
fuente
Pruebe el proyecto https://github.com/maksim88/PasswordEditText en github. Ni siquiera necesita cambiar su código Java utilizándolo. Solo cambia
Editar texto
etiquetar a
com.maksim88.passwordedittext.PasswordEditText
en tu archivo XML.
fuente
mostrar y ocultar contraseña Edit_Text con casilla de verificación
XML
código java
fuente
¿Intentaste con setTransformationMethod? Se hereda de TextView y desea un TransformationMethod como parámetro.
Puede encontrar más información sobre los métodos de transformación aquí .
También tiene algunas características interesantes, como el reemplazo de personajes.
fuente
Lo que hice fue
Puede ver este video para ver los pasos y explicaciones más detallados https://youtu.be/md3eVaRzdIM
Espero eso ayude :)
fuente
Aquí está mi solución sin usar TextInputEditText y el método de transformación.
XML
Código Java
fuente
Según esta fuente , si ha migrado su proyecto a AndroidX, puede reemplazar
compile "com.android.support:design:24.2.0"
con
implementation "com.google.android.material:material:1.0.0"
Entonces todo lo que tiene que hacer es poner el código a continuación en su archivo de diseño:
TextInputLayout
Puede encontrar más información sobre el material aquí .A esta fuente , se recomienda migrar a AndroidX desde la Biblioteca de soporte de Android:
fuente
Al principio, esta es la pantalla cargada con un vector de imagen de visibilidad de activos
al hacer clic cambiará a esta visibilidad de imagen desactivada
código para el cambio de contraseña anterior (código xml)
Código Java para operación de botones
fuente
En XML haz esto
fuente
Mi extensión de Kotlin. escribir una vez usar en todas partes
Puede mantener este método en cualquier archivo y usarlo en todas partes, usarlo así
donde ivShowPassword se hace clic en la vista de imagen (ojo) y etPassword es Editext
fuente
Una buena solucion. Configure un botón, luego use este código:
fuente
Agrega este método:
Llamarlo cambiará entre el estado del tipo de entrada (puede cambiar la transformación de una sola línea a su favorito). Ejemplo de uso:
fuente
fuente
fuente
fuente