从onTextChangeListener()更改EditText文本



我正在开发一个Android应用程序。在我的应用程序中,我必须使用基于文本的图像。所以我为EditTextOnChangeListener()。以下是我的示例代码。

edt.addTextChangedListener(this);  
@Override
public void afterTextChanged(Editable s) {
    // TODO Auto-generated method stub
    CharSequence cs=convert(edt.getText.toString());
            edt.setText(cs);
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
        int after) {
    // TODO Auto-generated method stub

}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
    // TODO Auto-generated method stub

}

但我得到了上面代码的异常。我知道异常的原因是从afterTextChanged()方法调用setText()。但我必须在相同的EditText文本更改的基础上更改EditText文本值。帮助我的朋友

另一个解决方案是使用布尔变量,这样它就不会进入无限调用堆栈,并最终给出stackoverflow exception

public void afterTextChanged(Editable s) {
    if(!flag) 
    {
            flag = true;
            edt.setText("string");
            flag = false;
    }
}

只需在设置文本之前删除侦听器,然后在完成后再次注册即可,如下所述:

添加onTextChanged实现后清除EditText文本

最新更新