取消textchange侦听器事件

时间:2012-09-10 14:46:05

标签: android

我有一个带textchange监听器的edittext。在监听器中,我测试用户的输入是否是我想要测试的输入是否在最小 - 最大边界内。

valueText.addTextChangedListener(new TextWatcher() {
    String backup = "0";

    public void onTextChanged(CharSequence s, int start, int before, int count) {
        if (count > 0 && !s.equals(backup)) {
            if (Integer.parseInt(s.toString()) > getMaximum()) {
                valueText.setText(backup);
            }
        }
    }

    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        backup = s.toString();
    }

    public void afterTextChanged(Editable s) {
    }
});

目前我有这个,但有没有一种简单的方法来“取消”textchange事件,所以当值超过最大值时没有任何反应?

或者我可以使用inputfilter来设置最小和最大输入吗?

Thx :)

编辑:我在这里找到了一个解决方案:http://tech.chitgoks.com/2011/06/27/android-set-min-max-value-an-edittext-accepts/

3 个答案:

答案 0 :(得分:0)

您可以在EditText XML定义中使用android:maxLength。

答案 1 :(得分:0)

 InputFilter.LengthFilter mLenthFilter=new InputFilter.LengthFilter(25); // pls define yr max length mine was 25.
        valueText.setFilters(new InputFilter[]{mLenthFilter});

答案 2 :(得分:0)

http://tech.chitgoks.com/2011/06/27/android-set-min-max-value-an-edittext-accepts/,您可以设置编辑文本的最小值和最大值。