мне нужно форматировать ввод валюту с 2 десятичным форматом например, когда пользователь вводит 2 выглядит $ 2,00, то когда, когда пользователь вводят 2 эти конвертировать в $ 22,00 ... и т.д.валюта вход с форматом 2 десятичного
Подхожу к чему-то аналогично, когда пользователь вводит 2 это преобразование в $ 0,02 в следующем 2 будет, как это $ 0,22
любой может помочь мне спасибо
public class MoneyTextWatcher implements TextWatcher {
private final WeakReference<EditText> editTextWeakReference;
public MoneyTextWatcher(EditText mEditText) {
editTextWeakReference = new WeakReference<EditText>(mEditText);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
EditText editTex = editTextWeakReference.get();
if(!s.toString().equals(editTex.getText())) {
editTex.removeTextChangedListener(this);
String cleanString = s.toString().replaceAll("[$,.]", "");
double parsed = Double.parseDouble(cleanString.replaceAll("[^\\d]", ""));
String formatted = NumberFormat.getCurrencyInstance().format((parsed/100));
editTex.setText(formatted);
editTex.setSelection(formatted.length());
editTex.addTextChangedListener(this);
}
@Override
public void afterTextChanged(Editable s) {
}
}
}
Вы читали http://stackoverflow.com/questions/5107901/better-way-to-format-currency-input-edittext еще? – BNK
Что относительно плавающих чисел? Вы хотите разрешить пользователю вводить что-то вроде $ 22.51 или работать только с целыми числами? – aga
целые числа, мой код работает с плавающим числом –