为了防止无限循环,我做了一件像这样丑陋的事情......
@Override
protected void onTextChanged(CharSequence text, int start,
int lengthBefore, int lengthAfter) {
String t = text.toString();
String tt = t.toUpperCase();
if (!t.equals(tt)) {
setText(tt);
}
super.onTextChanged(text, start, lengthBefore, lengthAfter);
}
在更改onTextChanged
内的文字时,还有其他方法可以阻止onTextChanged
被调用吗?
答案 0 :(得分:6)
您可以使用指定文本是否已更改一次的标志。如果它已被更改一次,则不要再次更改,否则更改它。
int flag_text=0;
protected void onTextChanged(CharSequence text, int start,
int lengthBefore, int lengthAfter) {
if (flag_text==0) {
flag_text=1;
setText(tt);
}
super.onTextChanged(text, start, lengthBefore, lengthAfter);
}