温馨提示×

Android InputFilter如何自定义扩展

小樊
86
2024-07-19 17:50:41
栏目: 编程语言

要自定义扩展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实现。

0