删除固定的位数

时间:2015-01-07 11:35:44

标签: android android-edittext textwatcher

也许这对你来说不是那么难,但我需要一些帮助。我有和editText显示长度为6位的代码。例如“292000”,“123000”等...

我在editText中有这个信息我希望用户只能删除最后2位数字来放置他们自己的号码(他们只能改变最后两位数字)。例如“292020”“123001”。

我正在使用textwatchers但我不能在其中使用setText,因为我会收到stackoverflow错误。任何帮助都将受到如此赞赏。

codArt.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence charSequence, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if(codArt.getSelectionStart() < 5) {
                codArt.setText(charSequence);
                codArt.setSelection(5);
            }
        }

        @Override
        public void afterTextChanged(Editable editable) {

        }
    });
}

2 个答案:

答案 0 :(得分:1)

从onTextChanged()方法中删除代码并尝试如下...

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            if (s.length() == 4 && after == 0) {
                codArt.removeTextChangedListener(this);
                codArt.setText(s);
                codArt.setSelection(s.length());
                codArt.addTextChangedListener(this);
            }

    }

答案 1 :(得分:0)

尝试使用带有seteditable set的textview为true。将最小字符设置为“n”并将最后的“k”字符保持为可编辑状态。自定义textview可以解决这个问题