Android Edittext插入负数

Android Edittext插入负数,android,android-edittext,Android,Android Edittext,这里经常这样问 我已设置编辑文本: <EditText android:id="@+id/edWminLevel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.3" android:inputType="numberDecimal|numberSi

这里经常这样问

我已设置编辑文本:

       <EditText
        android:id="@+id/edWminLevel"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="0.3"
        android:inputType="numberDecimal|numberSigned"
        android:text="0" />

当尝试插入负数时,我按“-”键,它会插入“-”,但它不允许我插入任何其他数字!它仅通过在插入完整数字后插入“-”来工作


这是一个BUG吗?

答案很简单:它不是BUG,而是程序员

我发表这篇文章是为了帮助别人

我对编辑文本应用了输入过滤器

EdWMin.setFilters(new InputFilter[] { new DecimalDigitsInputFilter(7, 2) });
这里的修复允许在数字前面的标志

    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;
        }

    }

我可以用你的密码做这件事。那一定是电话?这是安卓4.2.1的答覆,但最后是我的错!