我有一个关于edittext中的极限数的问题。我想用户只能输入1-70之间的数字。当用户想输入70.01或更多时,我不允许输入。只允许输入两位小数。总长度为5个字符(包括点)。
我可以限制小数点前后。&也限制70,但用户可以输入70.99(不知道为什么)在编辑文本,我想阻止。当用户输入71或更多时,我的验证工作
这是我在片段中使用的构造函数

     txtno.setFilters(new InputFilter[] {new DecimalDigitsInputFilter(Integer.parseInt(getString(R.string.length)),2,txtno)});

这是小数点后和小数点前
@Override
public CharSequence filter(CharSequence source, int start, int end,Spanned dest,    int dstart, int dend) {

    mTextView.setKeyListener(DigitsKeyListener.getInstance(true,true));
    String etText = mTextView.getText().toString();
    String temp = mTextView.getText() + source.toString();
    if (temp.equals(".")) {

        return "0.";
    } else if (temp.toString().indexOf(".") == -1) {

        // no decimal point placed yet
        if (temp.length() > mMyint) {

            return "";
        }
    } else {

        int dotPosition;
        int cursorPositon = mTextView.getSelectionStart();

        if (etText.indexOf(".") == -1) {

            dotPosition = temp.indexOf(".");
        } else {

            dotPosition = etText.indexOf(".");
        }
        if (cursorPositon <= dotPosition) {

            String beforeDot = etText.substring(0, dotPosition);
            if (beforeDot.length() < mMyint) {

                    return source;
            } else {

                if (source.toString().equalsIgnoreCase(".")) {

                    return source;
                    } else {

                    return "";
                    }
            }
        } else {

            temp = temp.substring(temp.indexOf(".") + 1);
            if (temp.length() > mMydec) {

                return "";
            }
        }
    }
    return null;
}

&这是限制70的文本观察程序
public void afterTextChanged(Editable s) {

    try{

        if(Integer.parseInt(s.toString())>70){

            s.replace(0, s.length(), s.toString());
        }
    }catch(Exception e){}

提前谢谢。

最佳答案

问题是您试图解析int-您需要解析double。

关于android - 用十进制限制android中的编辑文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27124065/

10-13 05:04