要自定义扩展Android InputFilter,您可以创建一个新的类来实现InputFilter接口,并重写其方法。以下是一个简单的示例:
public class CustomInputFilter implements InputFilter {
private int mMaxValue;
public CustomInputFilter(int maxValue) {
mMaxValue = maxValue;
}
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
try {
// 获取当前输入的数字
String input = dest.toString() + source.toString();
int value = Integer.parseInt(input);
// 检查输入是否超过最大值
if (value > mMaxValue) {
return "";
}
} catch (NumberFormatException e) {
// 输入不是数字,忽略
}
return null; // 返回null表示接受输入
}
}
然后,您可以将自定义InputFilter应用于EditText控件:
EditText editText = findViewById(R.id.edit_text);
editText.setFilters(new InputFilter[] {new CustomInputFilter(100)});
在这个例子中,CustomInputFilter类将输入限制在一个特定的最大值(在这里是100)。您可以根据自己的需求修改CustomInputFilter实现。