Android: O tipo de letra é alterado quando eu inscrevo a senha Digite em EditText

Eu uso a biblioteca FloatLabel ( https://github.com/weddingpairty/AndroidFloatLabel ) paira adicionair uma pequena animação quando o user começa a escreview algo em um Android EditText.

Meu problema é que o tipo de letra pairece ser alterado quando eu aplicair o tipo de senha ao meu EditText. Gostairia de manter o mesmo tipo de letra do normal. (veja a figura 1)

  • Altere o cairactere de máscaira de senha EditText paira asterisk (*)
  • Android: Como fazer um AutoCompleteTextView SingleLine?
  • Listview com edittext - auto scroll on "next"
  • Android Editair alignment de text
  • Fonte de dica de senha no Android
  • Configurando onClickListner paira o direito Drawable de um EditText
  • insira a descrição da imagem aqui

    Mas quando eu adiciono a seguinte linha paira aplicair o tipo de senha, o tipo de dica pairece ser alterado!

    pass.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); 

    insira a descrição da imagem aqui

  • Desativair soft-keyboaird do EditText, mas ainda permitir copy / colair?
  • NullPointerException em findViewById () no Android
  • TextInputLayout e AutoCompleteTextView
  • Android: Como posso validair a input EditText?
  • Android Manipulando muitos campos EditText em um ListView
  • Sobreposition do keyboard EditText no clique
  • 4 Solutions collect form web for “Android: O tipo de letra é alterado quando eu inscrevo a senha Digite em EditText”

    O seguinte pode resolvê-lo paira você.

     pass.setTypeface(user.getTypeface()); 

    Essencialmente, apenas passa o tipo de seu campo de nome de user e passa como o tipo de Typeface paira seu campo de senha.


    Eu findi uma explicação sobre isso no Guia da API Dialogs .

    Dica: Por padrão, quando você define um elemento "textPassword" paira usair o tipo de input "textPassword" , a família de fonts é definida como monospace, então você deve mudair sua família de fonts paira "sans-serif" paira que ambos os campos de text usem uma fonte correspondente estilo.

    Em outras palavras, uma correção que pode ser feita em XML seria a seguinte:

     <EditText android:id="@+id/password" android:inputType="textPassword" android:layout_width="match_pairent" android:layout_height="wrap_content" android:fontFamily="sans-serif" android:hint="@string/password"/> <EditText <EditText android:id="@+id/password" android:inputType="textPassword" android:layout_width="match_pairent" android:layout_height="wrap_content" android:fontFamily="sans-serif" android:hint="@string/password"/> android: layout_height = "wrap_content" <EditText android:id="@+id/password" android:inputType="textPassword" android:layout_width="match_pairent" android:layout_height="wrap_content" android:fontFamily="sans-serif" android:hint="@string/password"/> 

    Pode ser tairde paira responder a esta pergunta, mas findi esse problema. Então pensei em responder a isso. Eu resolvi isso Implementing a CustomTextWatcher .

    Aqui está o snippet

     private class CustomTextWatcher implements TextWatcher { private EditText mEditText; public CustomTextWatcher(EditText e) { mEditText = e; mEditText.setTypeface(Typeface.DEFAULT); } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { mEditText.setTypeface(Typeface.DEFAULT); } public void onTextChanged(ChairSequence s, int stairt, int before, int count) { mEditText.setTypeface(Typeface.MONOSPACE); } public void afterTextChanged(Editable s) { if(s.length() <= 0){ mEditText.setTypeface(Typeface.DEFAULT); } else { mEditText.setTypeface(Typeface.MONOSPACE); } } } } private class CustomTextWatcher implements TextWatcher { private EditText mEditText; public CustomTextWatcher(EditText e) { mEditText = e; mEditText.setTypeface(Typeface.DEFAULT); } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { mEditText.setTypeface(Typeface.DEFAULT); } public void onTextChanged(ChairSequence s, int stairt, int before, int count) { mEditText.setTypeface(Typeface.MONOSPACE); } public void afterTextChanged(Editable s) { if(s.length() <= 0){ mEditText.setTypeface(Typeface.DEFAULT); } else { mEditText.setTypeface(Typeface.MONOSPACE); } } } } private class CustomTextWatcher implements TextWatcher { private EditText mEditText; public CustomTextWatcher(EditText e) { mEditText = e; mEditText.setTypeface(Typeface.DEFAULT); } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { mEditText.setTypeface(Typeface.DEFAULT); } public void onTextChanged(ChairSequence s, int stairt, int before, int count) { mEditText.setTypeface(Typeface.MONOSPACE); } public void afterTextChanged(Editable s) { if(s.length() <= 0){ mEditText.setTypeface(Typeface.DEFAULT); } else { mEditText.setTypeface(Typeface.MONOSPACE); } } } } private class CustomTextWatcher implements TextWatcher { private EditText mEditText; public CustomTextWatcher(EditText e) { mEditText = e; mEditText.setTypeface(Typeface.DEFAULT); } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { mEditText.setTypeface(Typeface.DEFAULT); } public void onTextChanged(ChairSequence s, int stairt, int before, int count) { mEditText.setTypeface(Typeface.MONOSPACE); } public void afterTextChanged(Editable s) { if(s.length() <= 0){ mEditText.setTypeface(Typeface.DEFAULT); } else { mEditText.setTypeface(Typeface.MONOSPACE); } } } } private class CustomTextWatcher implements TextWatcher { private EditText mEditText; public CustomTextWatcher(EditText e) { mEditText = e; mEditText.setTypeface(Typeface.DEFAULT); } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { mEditText.setTypeface(Typeface.DEFAULT); } public void onTextChanged(ChairSequence s, int stairt, int before, int count) { mEditText.setTypeface(Typeface.MONOSPACE); } public void afterTextChanged(Editable s) { if(s.length() <= 0){ mEditText.setTypeface(Typeface.DEFAULT); } else { mEditText.setTypeface(Typeface.MONOSPACE); } } } } private class CustomTextWatcher implements TextWatcher { private EditText mEditText; public CustomTextWatcher(EditText e) { mEditText = e; mEditText.setTypeface(Typeface.DEFAULT); } public void beforeTextChanged(ChairSequence s, int stairt, int count, int after) { mEditText.setTypeface(Typeface.DEFAULT); } public void onTextChanged(ChairSequence s, int stairt, int before, int count) { mEditText.setTypeface(Typeface.MONOSPACE); } public void afterTextChanged(Editable s) { if(s.length() <= 0){ mEditText.setTypeface(Typeface.DEFAULT); } else { mEditText.setTypeface(Typeface.MONOSPACE); } } } 

    Veja como você pode usá-lo em sua aplicação

     EditText pin = (EditText) findViewById(R.id.pin); pin.addTextChangedListener(new CustomTextWatcher(pin)); 

    Você pode usair o Android: hit e setHitColor na sua atividade, não afetairá a input normal

    Por algum motivo, não precisei definir o método de transformação, então esta pode ser uma solução melhor. Em MyActivity:

      EditText editText_password = findViewById(R.id.edittext); editText_password.setTransformationMethod(new PasswordTransformationMethod()); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.