我正在使用EditText框创建一个Android应用程序。在此框中,我希望用户输入货币。
我已经使用方便的 android:inputType =“numberDecimal”将键盘限制为数字和小数,但我希望能够阻止用户在小数点后输入两位数以上放置(以便将内容保存为货币,也只是因为我认为用户清楚他们输入的内容很重要)。
然而,我没有太多的编程经验,我不知道从哪里开始寻找(验证是一个非常大的主题哈哈)。一点谷歌搜索,听起来我应该自己扩展InputFilter类,但我不知道如何去做或如果有更好的方法。所以任何建议都会非常感激!
答案 0 :(得分:2)
答案 1 :(得分:0)
试试这个
editText.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(2)});
DecimalDigitsInputFilter
public class DecimalDigitsInputFilter implements InputFilter {
Pattern mPattern;
public DecimalDigitsInputFilter(int digitsAfterZero) {
mPattern=Pattern.compile("[0-9]+((\\.[0-9]{0," + (digitsAfterZero-1) + "})?)||(\\.)?");
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
Matcher matcher=mPattern.matcher(dest);
if(!matcher.matches())
return "";
return null;
}
}
答案 2 :(得分:-1)
要限制用户在小数点后输入不超过两位数,请使用以下代码。
myEditText1 = (EditText) findViewById(R.id.editText1);
myEditText1.setInputType(3);
数字'3'可以解决问题。 希望它有所帮助!