【问题标题】:Android call setText within onTextChangedAndroid 在 onTextChanged 中调用 setText
【发布时间】: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

【问题讨论】:

    标签: android settext


    【解决方案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) 之前
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    相关资源
    最近更新 更多