如何重新允许用户删除文字而不添加字符?

时间:2015-12-05 22:16:15

标签: android android-edittext

我有一个编辑文本,用户可以输入100的最大字符,一旦它是100,编辑文本设置为comments.setKeyListener(null);但问题是我想允许用户删除一些字符重新编辑它

2 个答案:

答案 0 :(得分:1)

这不是建议用户输入的最大长度的方法。您应该使用android:maxLength xml属性或使用LengthFilter添加setFilters()

答案 1 :(得分:0)

您必须创建一个新的TextWatcher

TextWatcher commentsWatcher = new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        int c = 100 - comments.getText().length();

        if (c < 0) {
            // if the length is 100 delete the last char
            comments.setText(comments.getText().toString().substring(0, comments.getText().length() - 1));
            // if you delete the last char the cursor will be moved on
            // the start of your EdidText, so you must move it on the end
            comments.setSelection(comments.getText().length());
        };
    }

    @Override
    public void afterTextChanged(Editable s) {

    }
};

然后在你的EditText上调用它

 comments.addTextChangedListener(commentsWatcher);