ListView如何获取未显示的项目?

时间:2016-05-15 08:31:32

标签: android listview

正如知识库中已知的那样,

listView.getChildAt()
当项目未显示时,

将返回null对象。所以我尝试使用

listView.getAdapter().getView(i, null, null).findViewById(...)

问题似乎是我以这种方式获得的内容不会动态改变。我有一个带提示的TextView,在输入文本并确认之后,我只能在文本为空时获得提示。如果项目没有显示,请帮我找出如何获取内容。

1 个答案:

答案 0 :(得分:0)

我猜你使用的是EditText,而不是TextView。

你应该注意到这一点:

listView.getAdapter().getView(i, null, null)

它经常返回一个新视图,因为convertView == null。所以你得到了一个新的EditText而没有填写用户输入的文本(文本为空)。

我不明白你为什么要在ListView中获取隐形项目的内容。所以很难为这个问题提出解决方案。

在正常情况下,您应该在数据列表中保留View的内容(例如EditText中的输入字符)。使用EditText,您可以使用TextWatcher监视用户输入的更改,然后存储到相应的数据项。您可以轻松地从列表中获取它。