Я хочу добавить 3 десятичных знака форматирование валюты до EditText с использованием TextWatcher в начале, значение 0,000 и число должно изменить справа налево
Например: если я нажал 1,2,3,4,5, значение ордера должно выглядеть следующим образом 12.345
следующий код работает только для 2 десятичных знаков.Пожалуйста, кто-нибудь поможет мне как изменить этот код для 3 десятичных знаков или другое решение
public class CurrencyTextWatcher implements TextWatcher {
boolean mEditing;
Context context;
public CurrencyTextWatcher() {
mEditing = false;
}
public synchronized void afterTextChanged(Editable s) {
if(!mEditing) {
mEditing = true;
String digits = s.toString().replaceAll("\\D", "");
NumberFormat nf = NumberFormat.getCurrencyInstance();
try{
String formatted = nf.format(Double.parseDouble(digits)/100);
s.replace(0, s.length(), formatted);
} catch (NumberFormatException nfe) {
s.clear();
}
mEditing = false;
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
public void onTextChanged(CharSequence s, int start, int before, int count) { }
}