Pessoal, alguem sabe me indicar uma mascara de dinheiro para EditText no Android Studio que funcione bem? Fico no aguardo
ATÉ 50% OFF
TÁ ACABANDO!
0 dias
0 horas
0 min
0 seg
Pessoal, alguem sabe me indicar uma mascara de dinheiro para EditText no Android Studio que funcione bem? Fico no aguardo
Olá,
Você precisa de uma mascara durante a digitação em um EditText ou ela deve ser inserida após o texto foco?
Existem alguns modos de realizar esta ação.
Segue uma implementação de uma classe genérica.
import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText;
public abstract class MaskEditUtil {
public static TextWatcher mask(final EditText ediTxt, final String mask) {
return new TextWatcher() {
boolean isUpdating;
String old = "";
@Override
public void afterTextChanged(final Editable s) {}
@Override
public void beforeTextChanged(final CharSequence s, final int start, final int count, final int after) {}
@Override
public void onTextChanged(final CharSequence s, final int start, final int before, final int count) {
final String str = MaskEditUtil.unmask(s.toString());
String mascara = "";
if (isUpdating) {
old = str;
isUpdating = false;
return;
}
int i = 0;
for (final char m : mask.toCharArray()) {
if (m != '#' && str.length() > old.length()) {
mascara += m;
continue;
}
try {
mascara += str.charAt(i);
} catch (final Exception e) {
break;
}
i++;
}
isUpdating = true;
ediTxt.setText(mascara);
ediTxt.setSelection(mascara.length());
}
};
}
public static String unmask(final String s) {
return s.replaceAll("[.]", "").replaceAll("[-]", "").replaceAll("[/]", "").replaceAll("[(]", "").replaceAll("[ ]","").replaceAll("[:]", "").replaceAll("[)]", "");
}}
Activity:
TextView edt= mView.findViewById(R.id.shopin_editText);
TextWatcher mask = MaskEditUtil.mask(edt, "####-####");
edtToken.addTextChangedListener(mask);Você também pode editar de forma individual [...]
edtToken.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}