在Android中有一种简单的方法可以将逗号插入数字值吗? 即如果我有一个包含12345的EditText,我该如何将其显示为12,345?
我想我可以使用子字符串并将其切换为x个3个数字块,然后将每个3个数字块之间的“,”连接起来。 如果数字的长度是恒定的,这将是非常容易的,但是由于数字可以从一位数到20位,这使得它更复杂。
在我开始制作子字符串解决方案之前,如果有一种简单而干净的方法可以实现这一点,那就好奇了。
干杯
答案 0 :(得分:16)
如果是Java -
使用类似的东西:
double amount = 2324343192.015;
NumberFormat formatter = new DecimalFormat("###,###,###.##");
System.out.println("The Decimal Value is: "+formatter.format(amount));
结果:十进制值为:2,324,343,192.02
答案 1 :(得分:0)
您可以先在下面的类中声明:
public class MyNumberWatcher implements TextWatcher {
private EditText editText;
public MyNumberWatcher(EditText editText) {
this.editText = editText;
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
editText.removeTextChangedListener(this);
String sEditText = editText.getText().toString();
sEditText = sEditText.replace(",", "");
if (sEditText.length() > 0) {
DecimalFormat sdd = new DecimalFormat("#,###");
Double doubleNumber = Double.parseDouble(sEditText);
String format = sdd.format(doubleNumber);
editText.setText(format);
editText.setSelection(format.length());
}
editText.addTextChangedListener(this);
}
}
然后在xml文件中
<EditText
android:id="@+id/txt"
style="@style/edit_text_style"
android:inputType="number"/>
和主要活动中:
TextView txt = findViewById(R.id.txt);
txt.addTextChangedListener(new MyNumberWatcher(txt));