2010-03-10 8 views
35

Tengo un campo EditText que debe 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.Campo de contraseña numérica de Android

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?

+0

ver la respuesta: [http://stackoverflow.com/questions/15257058/how-to-show-numeric-soft-keyboard-for-password-field-in-android](http://stackoverflow.com/questions/15257058/how- to-show-numeric-soft-keyboard-for-password-field-in-android) –

Respuesta

3

Uso de la obsoleta

android:password="true" 

puede resolver su problema.

+0

De hecho, estaba a punto de vincular a su respuesta anterior: http: // stackoverflow.com/questions/2017674/edittext-set-for-password-with-phone-number-input-android/2017791 # 2017791 –

-2

Creo que debería usar android:password="true" y android:numeric="integer". Pero como dice la documentación de Android (en R.attr.html, no en los documentos TextView), se desactivan 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.

+0

Ver la respuesta de dtmilano, más el enlace que di a una pregunta anterior que cubre estos puntos. Lamentablemente, pasar ambos a 'inputType' no funciona. –

61

Este problema se puede resolver sin usar android:password obsoleto. Utilice el siguiente fragmento de código, pero no invertir la secuencia de llamadas:

EditText editText = (EditText) findViewById(R.id.MyEditText); 
    editText.setInputType(InputType.TYPE_CLASS_NUMBER); 
    editText.setTransformationMethod(PasswordTransformationMethod.getInstance()); 
+1

Claro, pero de alguna manera no es tan claro como un simple android: password = "true". Me pregunto por qué lo desaprobaron. – ettore

+5

De alguna manera, esto no parece funcionar en 2.3.x. En cuanto al paisaje, la contraseña aún es visible como se describe en Mar. –

+0

. Descubrí que 'editText.setSingleLine (true);' después de 'editText.setTransformationMethod()' hace que los puntos dejen de mostrarse. –

6

Para solucionar el problema por el que la contraseña es visible en el editor de pantalla completa modo horizontal (como Marcus describió), puede agregar el 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 monospace a emular mejor el comportamiento de texto de contraseña:

editText.setTypeface(Typeface.MONOSPACE); 
+0

Aunque esto no se ve bien en dispositivos pequeños, definitivamente es una forma de obtener la contraseña oculta. – Trinimon

+0

respuesta aceptable .. !!! –

1

Prueba esto en XML & 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" /> 
0

Esta contraseña de entrada cómo hacer que tiene sugerencia que no convierte a * !!.

en XML:

android:inputType="textPassword" 
android:gravity="center" 
android:ellipsize="start" 
android:hint="Input Password !." 

gracias a: mango y rjrjr por la información: D.

15

La solución más sencilla que he encontrado para una entrada de texto numérico que necesitaba ser ocultado (estilo contraseña) era utilizar: android:inputType="numberPassword"

Ejemplo completo que trabajó 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"/> 
+0

'numberKeyboard' no aparece el teclado de teclas 'only digits'. –

Cuestiones relacionadas