我遇到了ListView的一个问题。 我正在生成每个项目中带有动态TextViews(图像中的白框)的列表视图。 使用“Model”类的ArrayAdapter填充ListView。有些项目可以有2个白色框,有些可以有更多,这取决于“模型”中的数据/计数。此外,我正在使用ViewHolder模式,并可以维护列表项的其他状态。但是这些框是在getView()方法中动态添加的。
所以我的问题是,如何在滚动ListView时使用ViewHolder或任何其他方法维护这些动态添加的TextView的状态。
答案 0 :(得分:0)
我想滚动时no.of框会改变,但你需要在列表项中分配动态no.of框吗?
解决方案:
现在在基础适配器的getView()末尾,正确的代码
for(int i = 0; i< size[position]; i++){
//generate textview i.e white boxes here
}
我在动态列表中遇到了同样的问题,这解决了这个问题。
如果您仍有问题,请在此处发布您的代码。
答案 1 :(得分:0)
您需要有一个列表或一些数据结构来存储您从ui输入的数据内容,例如SparseArray<ModelUI>
。您的ModelUI类应该有一些字符串属性来存储动态文本框中的文本。
此外,您需要考虑到您在此处理两个索引:SparseArray中的一个索引/键,它是Model对象列表中的真实索引,以及Listview中可见项目的索引。 / p>
假设您有一个包含100个项目的列表,在列表视图中,您将始终显示10个项目;你总是要从listView中引用firstVisibleIndex。
如果我理解正确,您需要编辑文本框,滚动50个项目,滚动回已编辑的项目并在文本框中查看正确的文本,对吗?