Android正则表示输入0~9的数字只允许一个小数点
时间: 2024-04-08 12:31:09 浏览: 19
要在Android的EditText中限制输入只允许一个小数点,你可以使用正则表达式进行验证。以下是一个示例:
```java
import android.text.InputFilter;
import android.text.Spanned;
import java.util.regex.Pattern;
public class DecimalInputFilter implements InputFilter {
private Pattern pattern;
public DecimalInputFilter() {
pattern = Pattern.compile("^[0-9]+(\\.[0-9]*)?$");
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
String input = dest.toString() + source.toString();
if (!pattern.matcher(input).matches()) {
return "";
}
if (input.indexOf('.') != input.lastIndexOf('.')) {
return "";
}
return null; // 允许输入
}
}
```
然后,在你的EditText上应用这个InputFilter:
```java
EditText editText = findViewById(R.id.editText);
editText.setFilters(new InputFilter[]{new DecimalInputFilter()});
```
这样,用户在EditText中就只能输入0-9的数字,并且只允许一个小数点。如果输入不符合要求,输入将被阻止。请注意,这只是一个简单的示例,你可以根据需要进行修改和扩展。