您的位置:首页 > 移动开发 > Android开发

Android中TextWatcher afterTextChanged无限迭代异常

2016-04-05 16:36 489 查看
今天在开发的时候,给EditText添加一个TextChangedListener,于是写了个实现TextWatcher的方法,

private class MyTextWatcher implements 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) {

}

@Override
public void afterTextChanged(Editable s) {
if(s.length()>0){
s.append("测试");
//mEditText.setText("测试");
}
}


运行程序后StackOverflowError

,问题就出在s.append这句,其实在afterTextChanged中调用Editable的append方法,或直接setText()都会导致程序无限迭代。

要解决这个问题,在afterTextChanged方法中加入removeTextChangedListener(watcher),防止循环调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  异常 android