Edittext的Listview的动态长度未保存输入

时间:2011-03-08 07:33:32

标签: android

我有edittext框的列表视图。我还有一个按钮可以在列表中添加新行,因此列表长度是动态的。

然而,当我在edittext中输入文本并按下添加按钮时,我的输入消失了。我认为当我在列表中添加新行时,我的输入未被捕获。如何保存输入,以便在更改行数时,我的文本仍然存在?

2 个答案:

答案 0 :(得分:0)

无论如何,ListView都会回收其行视图,因此在不更改列表长度的情况下仍然存在问题。滚动ListView可见部分的行将丢失其内容。要解决此问题,输入EditText的文本需要存储在基础数据模型中,而不仅仅存储在视图中。

您可能需要向每个EditText添加TextWatcher(带addTextChangedListener())。当调用其中一个TextWatcher回调时,从EditText获取文本并将其保存到数据模型中。

要跟踪在TextWatcher回调期间要保存的数据元素,您可以使用类似于this CommonsWare sample中与RatingBar一起使用的技术。

答案 1 :(得分:0)

您的想法很好,但您需要保留edittext的数据。尝试将textwatcher添加到每个edittext并将每个edittext的文本保存在数组或其他内容中