如何在Android中的Edittext上设置正式的XX.XX

时间:2016-12-19 06:25:08

标签: android android-layout

我想在Edittext上设置掩码形式,包含2位数和2位小数 - > XX.XX 在提示属性中无法锁定我需要的表单。提示仅建议用户。在 Visual Basic 中,我可以在 MaskTextBox 上使用Mask属性。它可以修复 XX.XX ,然后我不会输入小数点,小数点仍然是永久的。

<EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:inputType="numberDecimal"
            android:id="@+id/editText13"
            android:gravity="center"
            android:maxLength="5"
            android:textColor="@android:color/black"
            android:textStyle="bold"
            android:textSize="24sp"
            android:layout_weight="1"
            android:labelFor="@+id/editText13"
            android:hint="XX.XX" />

1 个答案:

答案 0 :(得分:0)

试试这个

private String amtPattern = "^(([1-9]\\d{0,2}(,\\d{3})*)|(([1-9]\\d*)?\\d))(\\.\\d\\d)?$";

Pattern pattern = Pattern.compile(amtPattern);

editText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s) {

                String amt = s.toString();
                Matcher matcher = pattern.matcher(amt);
                if (matcher.matches()) {
                    editText.setTextColor(Color.BLACK);
                } else {
                    editText.setTextColor(Color.RED);
                    //alert user for wrong input
                }
            }
        });

您还可以将edittext长度保持为5(如果您希望限制用户输入超过5个数字。请将您的edittext输入类型保持为numberDecimal