Android 在 onTextChanged 中调用 setText
Posted
技术标签:
【中文标题】Android 在 onTextChanged 中调用 setText【英文标题】:Android call setText within onTextChanged 【发布时间】:2012-03-10 13:57:57 【问题描述】:为了防止无限循环,我做了这么丑陋的事情......
@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
?
【问题讨论】:
【参考方案1】:您可以使用标志来指定文本是否已更改一次。如果已经改过一次,就不要再改了,否则改。
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);
【讨论】:
这是我通常做的;很高兴看看是否有更优雅的解决方案 猜你的意思是把 "flag_text = 1" 放在 setText(tt) 之前以上是关于Android 在 onTextChanged 中调用 setText的主要内容,如果未能解决你的问题,请参考以下文章
如何在 onTextChanged() 中使用 setSpan() 来保存 onTextChanged() 的参数?
安卓onTextChanged参数解释及实现EditText字数监听 Editable使用
如何创建一个创建 onTextChanged Listener 并允许程序员设置不同行为的类
如何从 TextInput(onChange 或 onTextChange)创建 rxjs Observable