Я пытаюсь форматировать валюту в своем текстовом редакторе. Я написал код, и у меня проблема. NumberFormat возвращает разные символы валют на разных устройствах.Формат валюты Android, возвращающий другой символ валюты
Вот мой исходный код:
final NumberFormat nf = NumberFormat.getInstance(Locale.US);
transfer_maney.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (!s.toString().equals(current)) {
transfer_maney.removeTextChangedListener(this);
String cleanString = s.toString().replaceAll("[$,.]", "");
double parsed = Double.parseDouble(cleanString);
String formatted = nf.getCurrencyInstance().format((parsed/100));
current = formatted;
if (formatted.contains("$")) {
formatted = formatted.replace("$", "");
}
transfer_maney.setText(formatted);
transfer_maney.setSelection(formatted.length());
transfer_maney.addTextChangedListener(this);
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
Моя цель состоит в том, чтобы всегда возвращать $
символ, а затем удалить его. Как я уже сказал, на разных устройствах у меня разные символы. На некоторых устройствах я получаю символ $
, на некотором £
символе. Что я должен изменить в своем коде, поэтому он всегда будет возвращать символ доллара ($
), чтобы я мог его удалить?
Я попытался изменить Locale
, но он не работает. Если кто-нибудь знает решение, пожалуйста, помогите мне.
Спасибо всем