No he encontrado una solución adecuada a este problema. La solución aceptada de dtmilano no funciona del todo. Si EditText se enfoca en modo horizontal donde tiene el teclado de pantalla completa, los números aún se muestran en texto claro, sin enmascarar.
Pasé un tiempo considerable revisando el código de TextView, y la razón por la que esto es un problema es que están comprobando explícitamente InputType contra InputType.TYPE_CLASS_TEXT y, si recuerdo correctamente, TYPE_MASK_CLASS. Entonces, si incluye cualquier otro InputType dentro de esos límites (creo que el rango utilizado por TYPE_CLASS_TEXT y TYPE_MASK_CLASS es el primer byte), entonces no se reconocerá como una contraseña que necesita enmascaramiento.
Sé que lo que dije es bastante confuso. El código real es MUCHO más confuso. Estaba bastante consternado con el código de TextView para ser honesto. Es un desastre enredado, con duros controles codificados en todas partes. Horrible práctica de codificación que conduce a problemas como este.
Ah, interesante. No había visto que está en desuso. Aquí está la documentación que menciona 'inputType' es el camino a seguir (como menciona Roman): http://developer.android.com/reference/android/R.attr.html#password –
Como una pequeña adición, para aquellos que quieran para hacer las cosas desde el código: editText.setInputType (InputType.TYPE_CLASS_PHONE); editText.setTransformationMethod (PasswordTransformationMethod.getInstance()); –
inputType = "numberPassword" es posiblemente la mejor opción, pero solo está disponible si el SDK mínimo de su aplicación es> = 3.0 (Honeycomb) – k2col