我想在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" />
答案 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