studio - curso android desarrollo de aplicaciones móviles pdf
Android: ¿Cómo establecer la propiedad de la contraseña en un texto de edición? (9)
Necesito crear un formulario de inicio de sesión con los campos ''nombre de usuario'' ''contraseña'' y dos botones ''iniciar sesión'' y ''cancelar'' en mi aplicación de Android.
Estoy usando un diálogo de alerta con edittext dentro de eso.
Este es el código que utilicé para crear una contraseña edittext ..
final EditText Password = new EditText(this);
Password.setGravity(Gravity.CENTER);
Password.setHint("Password");
Password.setWidth(200);
Password.setTransformationMethod(new PasswordTransformationMethod());
login_alert.addView(Password);
Mi problema es que se muestra texto sin formato en lugar de ''puntos'' cuando abro un teclado para editar la contraseña. (Se muestra como puntos cuando no está en modo de teclado)
¿Puede alguien sugerir una solución?
Al hacer esto, me di cuenta de que para establecer la gravedad en el centro, y aún así mostrar tu sugerencia de contraseña cuando using inputType
, android:gravity="Center"
debe estar al final de tu línea XML.
<EditText android:textColor="#000000" android:id="@+id/editText2"
android:layout_width="fill_parent" android:hint="Password"
android:background="@drawable/rounded_corner"
android:layout_height="fill_parent"
android:nextFocusDown="@+id/imageButton1"
android:nextFocusRight="@+id/imageButton1"
android:nextFocusLeft="@+id/editText1"
android:nextFocusUp="@+id/editText1"
android:inputType="textVisiblePassword"
android:textColorHint="#999999"
android:textSize="16dp"
android:gravity="center">
</EditText>
Aquí hay una nueva forma de poner puntos en la contraseña
<EditText
android:id="@+id/loginPassword"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"
android:hint="@string/pwprompt" /
agregar android: inputType = "textPassword"
La única forma que funcionó para mí usando código (no XML) es esta:
etPassword.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD);
etPassword.setTransformationMethod(PasswordTransformationMethod.getInstance());
Mi búsqueda de una solución similar para Visual Studio 2015 / Xamarin me llevó a este hilo. Al establecer EditText.InputType
en Android.Text.InputTypes.TextVariationVisiblePassword
se ocultaba correctamente la contraseña durante la entrada del usuario, no se "ocultaba" la contraseña si estaba visible antes de que se procesara EditText Layout (antes de que el usuario enviara su contraseña). Para ocultar una contraseña visible después de que el usuario envíe su contraseña y se represente el diseño de EditText, utilicé EditText.TransformationMethod = PasswordTransformationMethod.Instance
según lo sugerido por LuxuryMode.
Necesita utilizar PasswordTransformationMethod.getInstance()
lugar de new PasswordTransformationMethod()
.
Para establecer la contraseña habilitada en EditText, tendremos que establecer un atributo "inputType" en el archivo xml. Si solo usamos EditText, habremos establecido el tipo de entrada en EditText como se indica en el código a continuación.
<EditText
android:id="@+id/password_Edit"
android:focusable="true"
android:focusableInTouchMode="true"
android:hint="password"
android:imeOptions="actionNext"
android:inputType="textPassword"
android:maxLength="100"
android:nextFocusDown="@+id/next"
android:layout_width="match_parent"
android:layout_height="match_parent" />
El atributo Habilitar contraseña es
android:inputType="textPassword"
Pero si implementamos Password EditText con Material Design (con la biblioteca de soporte de Design) tendremos el código de escritura como se indica a continuación.
<android.support.design.widget.TextInputLayout
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/txtInput_currentPassword"
android:layout_width="match_parent"
app:passwordToggleEnabled="false"
android:layout_height="wrap_content">
<EditText
android:id="@+id/password_Edit"
android:focusable="true"
android:focusableInTouchMode="true"
android:hint="@string/hint_currentpassword"
android:imeOptions="actionNext"
android:inputType="textPassword"
android:maxLength="100"
android:nextFocusDown="@+id/next"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.design.widget.TextInputLayout>
@Nota: - En Android SDK 24 y superior, "passwordToggleEnabled" es por defecto cierto. Entonces, si tenemos el manejo de la función show / hide en la contraseña EditText, tendremos que configurarlo como código falso en.
app:passwordToggleEnabled="true"
Para agregar la línea anterior, tendremos que agregar la línea siguiente en el diseño de la raíz.
xmlns:app="http://schemas.android.com/apk/res-auto"
Ver este enlace ver texto android: contraseña
Esto se aplica también a EditText
, ya que es una subclase directa conocida de TextView
.
Esto está en desuso
En xml de EditText iclude este atributo: android: password = "true"
Editar
android:inputType="textPassword"
Password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
Esta funciona para mí.
Pero tienes que mirar el comentario de Octavian Damiean, él tiene razón.