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