ver que puedan programa portatil poner para ocultar nuestra netgear evitar cómo contraseña como claves clave cambiar android passwords

android - que - ocultar clave wifi de portatil



Cómo cambiar entre ocultar y ver la contraseña (19)

¿Existe alguna manera inteligente de permitir al usuario cambiar entre ocultar y ver la contraseña en un android EditText? Varias aplicaciones basadas en PC permiten al usuario hacer esto.


¿Has probado con setTransformationMethod? Se hereda de TextView y quiere un TransformationMethod como parámetro.

Puede encontrar más acerca de TransformationMethods here .

También tiene algunas características geniales, como el reemplazo de personajes.


Aquí está mi solución sin utilizar TextInputEditText y el método de transformación.

XML

<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView style="@style/FormLabel" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/username" /> <EditText android:id="@+id/loginUsername" style="@style/EditTextStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawableLeft="@drawable/ic_person_outline_black_24dp" android:drawableStart="@drawable/ic_person_outline_black_24dp" android:inputType="textEmailAddress" android:textColor="@color/black" /> <TextView style="@style/FormLabel" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:text="@string/password" /> <EditText android:id="@+id/loginPassword" style="@style/EditTextStyle" android:layout_width="match_parent" android:layout_height="wrap_content" android:drawableEnd="@drawable/ic_visibility_off_black_24dp" android:drawableLeft="@drawable/ic_lock_outline_black_24dp" android:drawableRight="@drawable/ic_visibility_off_black_24dp" android:drawableStart="@drawable/ic_lock_outline_black_24dp" android:inputType="textPassword" android:textColor="@color/black" /> </LinearLayout>

Código Java

boolean VISIBLE_PASSWORD = false; //declare as global variable befor onCreate() loginPassword = (EditText)findViewById(R.id.loginPassword); loginPassword.setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { final int DRAWABLE_LEFT = 0; final int DRAWABLE_TOP = 1; final int DRAWABLE_RIGHT = 2; final int DRAWABLE_BOTTOM = 3; if (event.getAction() == MotionEvent.ACTION_UP) { if (event.getRawX() >= (loginPassword.getRight() - loginPassword.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) { // your action here //Helper.toast(LoginActivity.this, "Toggle visibility"); if (VISIBLE_PASSWORD) { VISIBLE_PASSWORD = false; loginPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); loginPassword.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_outline_black_24dp, 0, R.drawable.ic_visibility_off_black_24dp, 0); } else { VISIBLE_PASSWORD = true; loginPassword.setInputType(InputType.TYPE_CLASS_TEXT); loginPassword.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_outline_black_24dp, 0, R.drawable.ic_visibility_black_24dp, 0); } return false; } } return false; } });


En XML haz esto

<LinearLayout android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="vertical" > <RelativeLayout android:id="@+id/REFReLayTellFriend" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/etpass1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:background="@android:color/transparent" android:bottomLeftRadius="10dp" android:bottomRightRadius="50dp" android:fontFamily="@font/frutiger" android:gravity="start" android:inputType="textPassword" android:hint="@string/regpass_pass1" android:padding="20dp" android:paddingBottom="10dp" android:textColor="#000000" android:textColorHint="#d3d3d3" android:textSize="14sp" android:topLeftRadius="10dp" android:topRightRadius="10dp"/> <ImageButton android:id="@+id/imgshowhide1" android:layout_width="40dp" android:layout_height="20dp" android:layout_marginTop="20dp" android:layout_marginRight="10dp" android:background="@drawable/showpass" android:layout_alignRight="@+id/etpass1"/> </RelativeLayout> boolean show=true; //on image click inside password do this if(show){ imgshowhide2.setBackgroundResource(0); imgshowhide2.setBackgroundResource(R.drawable.hide); etpass2.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); etpass2.setSelection(etpass2.getText().length()); show=false; }else{ imgshowhide2.setBackgroundResource(0); imgshowhide2.setBackgroundResource(R.drawable.showpass); //etpass1.setInputType(InputType.TYPE_TEXT); etpass2.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); etpass2.setSelection(etpass2.getText().length()); show=true; }


Es realmente fácil de lograr desde la Biblioteca de soporte v24.2.0.

Lo que debes hacer es simplemente:

  1. Agregue la biblioteca de diseño a sus dependencias

    dependencies { compile "com.android.support:design:24.2.0" }

  2. Use TextInputEditText junto con TextInputLayout

    <android.support.design.widget.TextInputLayout android:id="@+id/etPasswordLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:passwordToggleEnabled="true" android:layout_marginBottom="@dimen/login_spacing_bottom"> <android.support.design.widget.TextInputEditText android:id="@+id/etPassword" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/fragment_login_password_hint" android:inputType="textPassword"/> </android.support.design.widget.TextInputLayout>

¡El atributo passwordToggleEnabled hará el trabajo!

  1. En su diseño de raíz, no olvide agregar xmlns:app="http://schemas.android.com/apk/res-auto"

  2. Puedes personalizar tu contraseña al alternar usando:

app:passwordToggleDrawable - Drawable para usar como el ícono de alternancia de visibilidad de ingreso de contraseña.
app:passwordToggleTint - Ícono a usar para el alternar de visibilidad de ingreso de contraseña.
app:passwordToggleTintMode - Modo de fusión utilizado para aplicar el tinte de fondo.

Más detalles en la documentación de TextInputLayout .


Lo que hice fue

  1. Crear una vista de texto de edición y una vista de texto normal
  2. Haz que se superpongan entre sí mediante el diseño de restricción (al igual que la pantalla de inicio de sesión de la aplicación de Facebook)
  3. Adjunte un onClickListener a la vista de texto normal para que cambie el tipo de entrada de la vista de edición de texto en consecuencia (Visible / No visible)

Puede ver este video para obtener más detalles y explicaciones https://youtu.be/md3eVaRzdIM

Espero eso ayude :)


Mostrar:

editText.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);

Esconder:

editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

Después de cada uno de estos, el cursor se reinicia, entonces:

editText.setSelection(editText.length());


Para mostrar los puntos en lugar de la contraseña, configure PasswordTransformationMethod:

yourEditText.setTransformationMethod(new PasswordTransformationMethod());

por supuesto, puede configurar esto de forma predeterminada en su elemento de texto de edición en el diseño xml con

android:password

Para volver a mostrar la contraseña legible, solo pase null como método de transformación:

yourEditText.setTransformationMethod(null);


Pruebe el proyecto https://github.com/maksim88/PasswordEditText en github. Ni siquiera necesita cambiar su código Java usándolo. Solo cambia

Editar texto

etiqueta a

com.maksim88.passwordedittext.PasswordEditText

en tu archivo XML


Puede MOSTRAR / OCULTAR contraseña usando el siguiente código:

CÓDIGO XML:

<EditText android:id="@+id/etPassword" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="21dp" android:layout_marginTop="14dp" android:ems="10" android:inputType="textPassword" > <requestFocus /> </EditText> <CheckBox android:id="@+id/cbShowPwd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/etPassword" android:layout_below="@+id/etPassword" android:text="@string/show_pwd" />

CÓDIGO JAVA:

EditText mEtPwd; CheckBox mCbShowPwd; mEtPwd = (EditText) findViewById(R.id.etPassword); mCbShowPwd = (CheckBox) findViewById(R.id.cbShowPwd); mCbShowPwd.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { // checkbox status is changed from uncheck to checked. if (!isChecked) { // show password mEtPwd.setTransformationMethod(PasswordTransformationMethod.getInstance()); } else { // hide password mEtPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } } });


Puede usar la aplicación: passwordToggleEnabled = "true"

aquí está el ejemplo dado a continuación

<android.support.design.widget.TextInputLayout android:id="@+id/password" android:layout_width="match_parent" android:layout_height="wrap_content" app:passwordToggleEnabled="true" android:textColorHint="@color/colorhint" android:textColor="@color/colortext">


Puedo agregar el código de ShowPassword / HidePassword con solo unas líneas, autocontenido en un bloque:

protected void onCreate(Bundle savedInstanceState) { ... etPassword = (EditText)findViewById(R.id.password); etPassword.setTransformationMethod(new PasswordTransformationMethod()); // Hide password initially checkBoxShowPwd = (CheckBox)findViewById(R.id.checkBoxShowPwd); checkBoxShowPwd.setText(getString(R.string.label_show_password)); // Hide initially, but prompting "Show Password" checkBoxShowPwd.setOnCheckedChangeListener( new CompoundButton.OnCheckedChangeListener() { public void onCheckedChanged(CompoundButton arg0, boolean isChecked) { if (isChecked) { etPassword.setTransformationMethod(null); // Show password when box checked checkBoxShowPwd.setText(getString(R.string.label_hide_password)); // Prompting "Hide Password" } else { etPassword.setTransformationMethod(new PasswordTransformationMethod()); // Hide password when box not checked checkBoxShowPwd.setText(getString(R.string.label_show_password)); // Prompting "Show Password" } } } ); ...


Siento que quiero responder a esta pregunta, incluso hay algunas buenas respuestas,

de acuerdo con la documentación TransformationMethod hacer nuestra misión

TransformationMethod

TextView usa TransformationMethods para hacer cosas como reemplazar los caracteres de las contraseñas con puntos o evitar que los caracteres de nueva línea causen saltos de línea en los campos de texto de una sola línea.

Tenga en cuenta que uso un cuchillo de mantequilla, pero es lo mismo si la verificación del usuario muestra la contraseña

@OnCheckedChanged(R.id.showpass) public void onChecked(boolean checked){ if(checked){ et_password.setTransformationMethod(null); }else { et_password.setTransformationMethod(new PasswordTransformationMethod()); } // cursor reset his position so we need set position to the end of text et_password.setSelection(et_password.getText().length()); }


Use la casilla de verificación y cambie el tipo de entrada en consecuencia.

public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { int start,end; Log.i("inside checkbox chnge",""+isChecked); if(!isChecked){ start=passWordEditText.getSelectionStart(); end=passWordEditText.getSelectionEnd(); passWordEditText.setTransformationMethod(new PasswordTransformationMethod());; passWordEditText.setSelection(start,end); }else{ start=passWordEditText.getSelectionStart(); end=passWordEditText.getSelectionEnd(); passWordEditText.setTransformationMethod(null); passWordEditText.setSelection(start,end); } }


Es trabajo para mí. Esto te ayudará definitivamente

showpass.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if(!isChecked){ // show password password_login.setTransformationMethod(PasswordTransformationMethod.getInstance()); Log.i("checker", "true"); } else{ Log.i("checker", "false"); // hide password password_login.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } } });


compilar ''com.android.support:appcompat-v7:24.2.0''

compile ''com.android.support:design:24.2.0''

en diseño

android:inputType="textPassword"

Esta funcionando


Puede cambiar dinámicamente los atributos de un TextView. Si configurara XML Atrribute android:password en true, la vista mostraría puntos si establece que el texto es falso.

Con el método setTransformationMethod , deberías poder cambiar estos atributos del código. (Descargo de responsabilidad: no he probado si el método aún funciona después de que se muestra la vista. Si tiene problemas con eso, déjeme un comentario para que lo sepa).

El código de muestra completo sería

yourTextView.setTransformationMethod(new PasswordTransformationMethod());

para esconder la contraseña Para mostrar la contraseña, puede establecer uno de los métodos de transformación existentes o implementar un TransformationMethod vacío que no haga nada con el texto de entrada.

yourTextView.setTransformationMethod(new DoNothingTransformation());


if (inputPassword.getTransformationMethod() == PasswordTransformationMethod.getInstance()) { //password is visible inputPassword.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); } else if(inputPassword.getTransformationMethod() == HideReturnsTransformationMethod.getInstance()) { //password is hidden inputPassword.setTransformationMethod(PasswordTransformationMethod.getInstance()); }


private boolean passwordVisible; private TextInputEditText firstEditText;

...

firstEditText = findViewById(R.id.et_first);

...

private void togglePassVisability() { if (passwordVisible) { String pass = firstEditText.getText().toString(); firstEditText.setTransformationMethod(PasswordTransformationMethod.getInstance()); firstEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); firstEditText.setText(pass); firstEditText.setSelection(pass.length()); passwordVisible = !passwordVisible; } else { String pass = firstEditText.getText().toString(); firstEditText.setTransformationMethod(HideReturnsTransformationMethod.getInstance()); firstEditText.setInputType(InputType.TYPE_CLASS_TEXT); firstEditText.setText(pass); firstEditText.setSelection(pass.length()); passwordVisible = !passwordVisible; } }


private int passwordNotVisible=1; @Override protected void onCreate(Bundle savedInstanceState) { showPassword = (ImageView) findViewById(R.id.show_password); showPassword.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { EditText paswword = (EditText) findViewById(R.id.Password); if (passwordNotVisible == 1) { paswword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); passwordNotVisible = 0; } else { paswword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); passwordNotVisible = 1; } paswword.setSelection(paswword.length()); } }); }