En mi aplicación, tengo un EditText
tipo de entrada predeterminado cuya configuración predeterminada es android:inputType="textPassword"
deault. Tiene un CheckBox
signo a su derecha, que cuando se marca, cambia el tipo de entrada de ese EditText a TEXTO NORMAL PLANO. Código para eso es
password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Mi problema es que cuando esa casilla de verificación no está marcada, debería volver a establecer el tipo de entrada en CONTRASEÑA. Lo he hecho usando
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
Pero, el texto dentro de ese texto de edición todavía es visible. Y para sorpresa, cuando cambio la orientación, establece automáticamente el tipo de entrada en CONTRASEÑA y el texto dentro aparece con viñetas (se muestra como una contraseña).
¿Alguna forma de lograr esto?
android
passwords
android-edittext
Rajkiran
fuente
fuente
mailEdt.setInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
. Funciona para mi.Respuestas:
Solo para las personas que tienen el mismo problema. Simplemente agregue un atributo adicional a ese EditText mediante programación y ya está.
Para contraseña numérica (pin).
Además, asegúrese de que el cursor esté al final del texto en EditText. Porque, cuando cambia el tipo de entrada, el cursor se establecerá automáticamente en el punto de partida. Así que sugiero usar el siguiente código:
Al usar Enlace de datos, puede utilizar el siguiente código
Si usa Kotlin,
fuente
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
editText.getSelectionStart()
yeditText.getSelectionEnd()
consetSelection(start, end)
para evitar este problema.use este código para cambiar la contraseña a texto y viceversa
para obtener el código de muestra completo, consulte http://www.codeproject.com/Tips/518641/Show-hide-password-in-a-edit-text-view-password-ty
fuente
El método anterior realmente no funcionó para mí. La respuesta a continuación funciona para 2.2 sdk.
Establecer inputType para un EditText?
fuente
Otro ejemplo simple que usa ImageView para alternar la visibilidad con menos código, debido a la asignación de InputType solo necesitamos un operador de igualdad:
Sustitución:
Con :
Dará el mismo resultado pero una palabra más corta.
fuente
fuente
Esto funcionó para mí:
fuente
Ok, así que después de horas de intentarlo finalmente lo implementé. Debajo está el código ...
Explicaciones: - Tengo un botón con el texto predeterminado como se muestra. Después del evento onclick, verifica si se muestra el texto del botón. Si se muestra, cambie el tipo de entrada, ajuste la posición del cursor y configure el nuevo texto como oculto en él.
Cuando está oculto ... haciendo reversa, es decir, ocultando la contraseña, ajustando el cursor y configurando el texto como se muestra. Y eso es. Está funcionando como un encanto.
fuente
Para usuarios de kotlin:
fuente
Use este código para cambiar la contraseña a texto y viceversa. Este código funcionó perfectamente para mí. Prueba esto..
fuente
Este es el controlador onClick completo para la Imagen / Botón para mostrar / ocultar la contraseña.
fuente
edtPassword.getSelectionStart()
.La función de alternancia de visibilidad de la contraseña se ha agregado para admitir la versión 24.2.0 de la biblioteca, lo que le permite alternar la contraseña directamente
EditText
sin necesidad de aCheckBox
.Básicamente, puede hacer que funcione actualizando primero la versión de su biblioteca de soporte a 24.2.0 y luego estableciendo una
inputType
contraseña enTextInputEditText
. Aquí se explica cómo hacerlo:Puede obtener más información sobre la nueva función en la documentación del desarrollador para TextInputLayout .
fuente
Desde la biblioteca de soporte v24.2.0. puedes lograr esto muy fácil
Lo que debes hacer es simplemente:
Agregue la biblioteca de diseño a sus dependencias
Usar
TextInputEditText
en conjunto conTextInputLayout
passwordToggleEnabled
el atributo hará que aparezca el cambio de contraseñaEn 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 .
fuente
Mi búsqueda de una solución similar para Visual Studio / Xamarin me llevó a este hilo. A continuación se muestra lo que funcionó para mí con Xamarin. Tenga en cuenta que esta implementación retiene el
TYPE_TEXT_FLAG_NO_SUGGESTIONS
indicador al cambiar de modo.EditText et = FindViewById<EditText>(Resource.Id.ET);
Para mostrar personajes:
et.InputType = Android.Text.InputTypes.TextVariationVisiblePassword | Android.Text.InputTypes.TextFlagNoSuggestions;
Para ocultar personajes:
et.InputType = Android.Text.InputTypes.TextVariationPassword | Android.Text.InputTypes.ClassText;
Para establecer la posición para finalizar:
int position = et.Text.Length;
et.SetSelection(position, position);
fuente
if (edittext.getInputType() == (InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD )){ edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD ); }else{ edittext.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD ); }
para Visual Studio / Xamarin ..?alguna situación dinámica
holder.edit_pin.setInputType(InputType.TYPE_CLASS_NUMBER);
no funcionará, así que mejor usa ambas cosas asíNota: esto es adecuado para cuando utiliza controles dinámicos como el uso de arrayaapter
fuente
Después
setInputType
de un campo de contraseña, tendrá un problema con FONT.Aquí está mi solución para mostrar / ocultar contraseña sin problema de fuente
Nota: uso en
InputType.TYPE_TEXT_VARIATION_PASSWORD
lugar deInputType.TYPE_CLASS_TEXT
oHideReturnsTransformationMethod
porque quiero que el teclado muestre texto y númeroMANIFESTACIÓN
fuente
Yo quitaría
android:inputType="textPassword"
de su diseño. Es por eso que está volviendo a la contraseña cuando cambia la orientación. Porque cada vez que cambia la orientación, se vuelve a crear la vista.En cuanto al primer problema, intente esto:
básicamente vaciando el texto antes de cambiar el tipo de entrada y luego volver a agregarlo.
fuente
password.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
inmediatamente después de la inicialización, pero ¡ay!Complete el código cuando desee aplicar la visibilidad de contraseña en el texto de edición de contraseña.
Crear un identificador [Cualquier dibujo o casilla de verificación]
al hacer clic o al marcar / desmarcar, escriba esto:
No olvides escribir esta línea:
Restablece el cursor al final de la línea.
fuente
Cambio el tipo de entrada en mi casilla de verificación, así que en mi
OnCheckedChangeListener
sí:Y finalmente funcionó.
Parece un problema booleano con
TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
. Invierta la bandera y debería solucionar el problema.En tu caso:
fuente
Utilice el método de transformación:
Esconder:
A visible:
Eso es.
fuente
Solo un comentario adicional sobre la respuesta correcta proporcionada por @Rajkiran, es posible que desee agregar
al estado de entrada NORMAL para que los usuarios no se molesten por la sugerencia automática del teclado
fuente
final int [] cuenta = {0};
fuente
Sobre la base de las respuestas de neeraj t y Everton Fernandes Rosario he escrito en Kotlin, donde
password
es un identificador de un EditarTexto en su diseño.fuente