要自定義擴展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實現。