programacion - Campo de contraseña numérica de Android
manual de programacion android pdf (8)
Tengo un campo EditText que necesita ser un campo de contraseña numérica. Todo funciona bien en modo retrato; no en el paisaje Cuando el usuario selecciona el campo EditText, la IU se acerca al campo y cuando escribo todos los caracteres están visibles.
Necesito un teclado numérico también. Intenté configurar el tipo de entrada para el texto contraseña | número. Si elimino la opción "número" todo funciona bien; De otra manera no.
¿Alguna sugerencia?
Creo que deberías usar android:password="true"
y android:numeric="integer"
. Pero como dice la documentación de Android (en R.attr.html
, no en los documentos de TextView
), estos están desactivados y debe usar android:inputType
. inputType toma bandera, por lo que puede mezclar múltiples posibilidades. Y creo que android:inputType="number | password"
debería funcionar para usted.
Debe especificar android:password="true"
si también desea admitir dispositivos más antiguos.
Esta es la forma de hacer una contraseña de entrada que tiene una sugerencia que no se convirtió a * !!
En XML:
android:inputType="textPassword"
android:gravity="center"
android:ellipsize="start"
android:hint="Input Password !."
gracias a: mango y rjrjr por la comprensión: D.
La solución más simple que encontré para una entrada de texto numérico que debía ocultarse (estilo de contraseña) era usar: android:inputType="numberPassword"
Ejemplo completo que funcionó para mí:
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/MyLargeTextBox"
android:background="@android:drawable/editbox_background_normal"
android:id="@+id/txtWebServicePIN"
android:layout_row="3"
android:layout_column="2"
android:layout_columnSpan="2"
android:minWidth="100dp"
android:maxWidth="100dp"
android:inputType="numberPassword"
android:maxLength="6"/>
Para solucionar el problema donde la contraseña es visible en el editor de pantalla completa en modo horizontal (como describió Marcus), puede agregar la siguiente línea para deshabilitar el editor de pantalla completa:
editText.setImeOptions(EditorInfo.IME_FLAG_NO_EXTRACT_UI);
También es posible que desee cambiar el tipo de letra a monoespacio para emular mejor el comportamiento de contraseña de texto:
editText.setTypeface(Typeface.MONOSPACE);
Prueba con esto:
EditText input = (EditText) findViewById(R.id.input);
input.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);
Más información HERE
Prueba esto en XML y nada cambia en el archivo de manifiesto,
<EditText
android:id="@+id/etPassword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:singleLine="true" />
Usando el obsoleto
android:password="true"
puede resolver su problema
Este problema se puede resolver sin utilizar android:password
desaprobado android:password
. Utilice el siguiente fragmento de código, pero no invierta la secuencia de llamadas:
EditText editText = (EditText) findViewById(R.id.MyEditText);
editText.setInputType(InputType.TYPE_CLASS_NUMBER);
editText.setTransformationMethod(PasswordTransformationMethod.getInstance());