如何格式化edittext(android)
我需要格式化一个如何格式化edittext(android),android,android-edittext,Android,Android Edittext,我需要格式化一个EditText来添加一个点 当输入超过3个数字时,在第一个数字后加上点(如:1.000) 但是当输入的数字超过4个时,在第二个数字后面加上点(如:10.000) 我已经尝试了添加文本更改列表,但没有成功。此算法用于在末尾添加数字并移动点,如下一个示例: 你一开始只有0.00 插入1并具有0.01 插入5和0.15 插入9和1.59 尝试修改代码并使其适应您的需要 youtEditText.addTextChangedListener( new TextWatcher() {
EditText
来添加一个点
当输入超过3个数字时,在第一个数字后加上点(如:1.000)
但是当输入的数字超过4个时,在第二个数字后面加上点(如:10.000)
我已经尝试了添加文本更改列表,但没有成功。此算法用于在末尾添加数字并移动点,如下一个示例: 你一开始只有0.00 插入1并具有0.01 插入5和0.15 插入9和1.59 尝试修改代码并使其适应您的需要
youtEditText.addTextChangedListener( new TextWatcher() {
boolean mEditing = false;
public void onTextChanged(CharSequence s, int start, int before, int count) { }
public void beforeTextChanged(CharSequence s, int start, int count, int after) { }
public void afterTextChanged(Editable s) {
if(!mEditing) {
mEditing = true;
String digits = s.toString().replaceAll("\\D", "");
NumberFormat nf = new DecimalFormat( "#,##0.00" );
try{
String formatted = nf.format(Double.parseDouble(digits)/100);
s.replace(0, s.length(), formatted);
} catch (NumberFormatException nfe) {
s.clear();
}
mEditing = false;
}
}
});
另一件事是,您需要将焦点放在文本的末尾,您可以使用下一个代码:
yourEditText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
amount.setSelection(amount.getText().length());
}
}
});
我希望这能对您有所帮助。您应该向我们展示您的文本监视程序的代码。我猜你有点不对劲。你想要10万还是10万?是最后3位在
之后,还是5位以上的数字仍应在前两位之后?嗨,我总是希望点后面只有3个零。1.000 10.000 100.000我试过了,但不起作用。。我总是只想要点后面的3个零。1.000 10.000 100.000谢谢