如何将 EditText 长度限制为 7 个整数和 2 个小数位? [英] How to limit EditText length to 7 integers and 2 decimal places?

查看:33
本文介绍了如何将 EditText 长度限制为 7 个整数和 2 个小数位?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个 EditText 框,它必须允许用户输入最多 7 个数字和两个小数位.输入七位数字后,不应允许再添加一位数字,但我可以允许最多 2 位小数.我使用小数点过滤器保留 2 个小数位,此代码在 XML 中

I have an EditText box which have to allow user to enter upto 7 numbers and two decimal places. After entering seven digits,it should not allow to add one more digit but i may allow upto 2 decimal places. I use a decimal filter for 2 decimal places and this code in XML

android:maxLength="7"    
android:imeOptions="actionDone"                  
android:inputType="numberDecimal"

但是EditText 允许输入 8 位数字.怎么解决?

But EditText is allowing to enter 8 digits. How can this be solved?

推荐答案

在 onCreate 下试试

 youreditText.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(5,1)});

在你的程序中的任何地方

   public class DecimalDigitsInputFilter implements InputFilter {

        Pattern mPattern;

        public DecimalDigitsInputFilter(int digitsBeforeZero,int digitsAfterZero) {
            mPattern=Pattern.compile("[0-9]{0," + (digitsBeforeZero-1) + "}+((\.[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;
            }

        }

这篇关于如何将 EditText 长度限制为 7 个整数和 2 个小数位?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆