Код ниже создает ошибку stackoverflow. Идея состоит в том, чтобы отформатировать сумму, когда или после того, как пользователь наберет сумму.EditText CurrencyFormat без символа Android
500 -> 500,00
1000 -> 1 000,00
29999.55-> 29 999,55
.. .. ..
edit_amount.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
if (edit_amount.getText().toString().length()>0){
edit_amount.setText(
currencyFormat(edit_amount.getText().toString()));
}else {}
}
});
public String currencyFormat(String number){
String credits="";
try {
//en, us
if (TextUtils.isEmpty(MyApplication.pref.GetPreferences("AppCurrency"))){
credits = NumberFormat.getCurrencyInstance(new Locale("fr", "FR")).format(Double.valueOf(number));
}else {
if (MyApplication.pref.GetPreferences("AppCurrency").equals("Euro")) {
credits = NumberFormat.getCurrencyInstance(new Locale("fr", "FR")).format(Double.valueOf(number));
} else {
credits = NumberFormat.getCurrencyInstance(new Locale("en", "US")).format(Double.valueOf(number));
}
}
}catch(Exception ex){
credits = "mCredits";
}
return credits;
}
ошибка: Invalid двойной: "000 € 8" – Dimitri
Причина заключается в том, что "" не является допустимым в два раза. Вам нужно протестировать строку до или уловить такие исключения. – KishuDroid
Если этот ответ поможет вам или решит вашу проблему, пожалуйста, примите его как ответ и поддержите его. – KishuDroid