【发布时间】:2012-01-27 13:03:57
【问题描述】:
我有一个方法drawItems(),它每次都会创建一个新布局并将其设置为contentView。而且我还有一个控件EditText,它应该在其内容发生更改时删除其他元素。
edit.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
currentText = s.toString();
drawItems();
}
public void beforeTextChanged(CharSequence s,
int start, int count, int after) {
}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
}
});
我想要做的是保存它的当前文本,删除所有元素并只留下这个EditText 和saved string。当我尝试运行此应用程序时,引发的错误是 StackOverflow,因为它无限次呈现 drawItems 方法。为什么即使我不更改其内容,它也会在afterTextChanged 中呈现drawItems?它甚至在整个页面加载之前就被渲染了。
【问题讨论】:
-
只是一个疯狂的猜测,但我认为你可能会从
afterTextChanged触发onTextChanged,这显然会无限循环。我会在这两种方法中都设置一个断点并验证是(或不是)这种情况
标签: android layout stack-overflow