可以通过自定义 InputFilter 解决此问题。由于 Android 输入框限制了输入类型,因此必须要使用正则表达式来过滤用户输入。以下是一个示例用法:
private static final String REGEX = "[0-9]\.?[0-9]";
InputFilter filter = new InputFilter() { @Override public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) { Pattern pattern = Pattern.compile(REGEX); Matcher matcher = pattern.matcher(source); if (!matcher.matches()) { return ""; } return null; } };
EditText customInput = findViewById(R.id.customInput); customInput.setFilters(new InputFilter[] { filter });
这样就可以限制用户输入的内容为数字和小数点。您可以根据需要调整正则表达式以限制更多类型的输入。