什么是在Android上屏蔽EditText的最佳方式?
我希望我的EditText表现得像这个十进制数字输入here。
有一个简单的方法来做到这一点?
答案 0 :(得分:2)
您必须通过InputFilter以编程方式在EditText
上设置setFilters。
来自文档:
可以将InputFilters附加到Editables以约束可以对其进行的更改。
您甚至可以更改用户输入,例如通过添加小数点,如果我能正确找到您想要的小数点。
答案 1 :(得分:0)
我为编辑文本构建了一个十进制掩码,它会自动将编辑文本更改为您想要的小数位数。基本上,您会听取文本更改和失去焦点。
private void formatNumber() {
sNumberToFormat = etNumberToFormat.getText().toString();
sDecimalMask = etDecimalMask.getText().toString();
boolean periodMask = false;
String delimiter = getDelimiter();
String[] decimalMask = getsDecimalMask();
if (decimalMask.length == 1) {
return;
} else {
if (delimiter.equalsIgnoreCase(",")) {
//decimal format only currently works with dot delimiters.
sDecimalMask = sDecimalMask.replace(",", ".");
}
DecimalFormat df = new DecimalFormat(sDecimalMask);
df.setRoundingMode(RoundingMode.UP);
sNumberToFormat = df.format(Float.valueOf(sNumberToFormat.replace(",", ".")));
//if (maxNumber > Float.valueOf(sNumberToFormat)) {
if (delimiter.equalsIgnoreCase(",")) {
sNumberToFormat = sNumberToFormat.replace(".", ",");
}
etNumberToFormat.setText(sNumberToFormat);
}
}
完整演示为here。
答案 2 :(得分:-1)
我认为你可以使用:
android:numeric="decimal"