Android:简单格式输入数字
我在学安卓。我有一个edittext来输入钱,如果我输入1000,结果必须是1.000,如果我输入1000000,结果必须是1.000.000 当我打字时,从最后到开始的每3个字符必须有一个“.” 像这样Android:简单格式输入数字,android,Android,我在学安卓。我有一个edittext来输入钱,如果我输入1000,结果必须是1.000,如果我输入1000000,结果必须是1.000.000 当我打字时,从最后到开始的每3个字符必须有一个“.” 像这样 public class CurrencyFormatInputFilter implements InputFilter { Pattern mPattern = Pattern.compile("(0|[1-9]+[0-9]*)?(\\.[0-9]{0,2})?");
public class CurrencyFormatInputFilter implements InputFilter {
Pattern mPattern = Pattern.compile("(0|[1-9]+[0-9]*)?(\\.[0-9]{0,2})?");
@Override
public CharSequence filter(
CharSequence source,
int start,
int end,
Spanned dest,
int dstart,
int dend) {
String result =
dest.subSequence(0, dstart)
+ source.toString()
+ dest.subSequence(dend, dest.length());
Matcher matcher = mPattern.matcher(result);
if (!matcher.matches()) return dest.subSequence(dstart, dend);
return null;
}
}
您可以使用InputFilter
public class CurrencyFormat implements InputFilter {
Pattern mPattern = Pattern.compile("(0|[1-9]+[0-9]*)?(\\.[0-9]{0,2})?");
@Override
public CharSequence filter(CharSequence source, int start, int end,
Spanned dest, int dstart, int dend) {
String result =
dest.subSequence(0, dstart)
+ source.toString()
+ dest.subSequence(dend, dest.length());
Matcher matcher = mPattern.matcher(result);
if (!matcher.matches()) return dest.subSequence(dstart, dend);
return null;
}
}
您可以设置如下过滤器:
editText.setFilters(new InputFilter[] {new CurrencyFormat()});
如果您觉得这有用,请接受它。非常感谢您,让我在我的项目中尝试一下!非常感谢。祝你过得愉快,米歇尔
editText.setFilters(new InputFilter[] {new CurrencyFormat()});