Campo de contraseña numérica de Android

Tengo un campo EditText que necesita ser un campo numérico de la contraseña. Todo funciona bien en modo retrato; No en el paisaje. Cuando el usuario selecciona el campo EditText, la interfaz de usuario se amplía en el campo y cuando escribo todos los caracteres son visibles.

Necesito un teclado numérico también. Traté de configurar el tipo de entrada a la contraseña de texto. Si elimino la opción "número" todo funciona bien; De lo contrario no

¿Alguna sugerencia?

Este problema puede resolverse sin utilizar la android:password obsoleta de 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()); 

La solución más simple que encontré para una entrada numérica de texto que necesitaba ser ocultada (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 en el que la contraseña está visible en el editor de pantalla completa en modo de paisaje (como lo 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 puede cambiar el tipo de letra a monospace para emular mejor el comportamiento de contraseña de texto:

 editText.setTypeface(Typeface.MONOSPACE); 

Uso de la

 android:password="true" 

Puede resolver su problema.

Pruebe 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" /> 

Esto cómo hacer la contraseña de entrada que tiene una pista que no se convierta a * !!.

En XML:

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

Gracias a: mango y rjrjr por la perspicacia: D.

Creo que deberías usar android:password="true" y android:numeric="integer" . Sin embargo, como afirma la documentación de Android (en R.attr.html , no en los documentos de TextView ), éstos se deprecian y se debe utilizar android:inputType . InputType lleva 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 soportar dispositivos antiguos.

  • EditText: Cambiar InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS
  • Seleccione todo el texto dentro de EditText cuando se enfoque
  • Margen de set / padding de Android para el contenido (texto) en lugar de un contenedor (EditText)
  • OnEditorAction () no se llama después de pulsar la tecla Enter en el emulador Jelly Bean
  • Cómo establecer un texto en un Edittext que está en un cuadro de diálogo?
  • Android no puede obtener EditText getText (). ToString () en un diálogo
  • Android EditText borrar (retroceso) evento clave
  • Implementación de etiquetas flotantes en línea (con EditText?)
  • Cambiar tamaño del borde inferior de EditText
  • Android Cómo establecer límite máximo de "palabra" en EditText
  • Cómo ocultar el teclado predeterminado de ListViewAdapter en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.