如何设置Edittext视图只允许两个数值和两个十进制值,如##。##

时间:2011-04-20 21:25:18

标签: android validation android-edittext

我需要为edittext视图设置验证,应该允许两个数值和两个十进制值。 例如:22.32

请告诉我如何进行此验证

提前致谢

2 个答案:

答案 0 :(得分:7)

试一试。我吮吸正则表达式,所以它可能不是最好的,但试一试。

    EditText text = new EditText(this);
    InputFilter[] filters = new InputFilter[1];
    filters[0] = new InputFilter() {
        public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
            if (end > start) {
                String destTxt = dest.toString();
                String resultingTxt = destTxt.substring(0, dstart) + source.subSequence(start, end) + destTxt.substring(dend);
                if (!resultingTxt.matches("^\\d(\\d(\\.\\d{0,2})?)?")) {
                    return "";
                }
            }
        return null;
        }
    };
    text.setFilters(filters);

答案 1 :(得分:1)

boolean isValid=<EditText Variable>.getText().toString().matches("\\d{2}\\.\\d{2}");

将此方法放在onClickListener中,我想你会很高兴。