我正在尝试在 koltin 中实现可扩展的 recylerveiew: 我尝试使用以下代码:
val DataItems = arrayListOf<faqBody>()
val ChildDataItems = arrayListOf<childItem>()
var ParentDataItem: faqBody
var ChildDataItem: childItem
for (item in 0..5) {
ParentDataItem = faqBody()
ParentDataItem.menuText = item.toString()
for (item1 in 0..2) {
ChildDataItem = childItem()
ChildDataItem.menuText = item1.toString()
ChildDataItems .add(ChildDataItem)
ParentDataItem.childItem = childlist
}
DataItems .add(ParentDataItem)
在尝试上面的代码时,我在父项中获取子项的重复数据 如果子项是 2 父项是 2 父项设置良好,但子项与父项的 bcoz 一样重复 2 次。
任何人都可以帮助摆脱上述问题吗? 请查找图片供您引用。
最佳答案
您的ChildDataItems
超出了循环范围。为第一个父项添加新元素 2 次,但是列表保持不变,并且新元素添加到列表中,而其他 2 个元素已经在其中。
因此,您的第三个父项最终会包含 6 个子项的列表!
在循环范围内声明您的子级列表,而不是外部范围
val DataItems = arrayListOf<faqBody>()
var ParentDataItem: faqBody
var ChildDataItem: childItem
for (item in 0..5) {
ParentDataItem = faqBody()
ParentDataItem.menuText = item.toString()
val ChildDataItems = arrayListOf<childItem>() // a new list will be created for each parent
for (item1 in 0..2) {
ChildDataItem = childItem()
ChildDataItem.menuText = item1.toString()
ChildDataItems .add(ChildDataItem)
ParentDataItem.childItem = childlist
}
DataItems .add(ParentDataItem)
}
P.S.变量的名称应以小写字母开头,类/接口(interface)的名称应以大写字母开头。现代 Java/Kotlin 生产中通常遵循这种代码风格
关于java - 数据在 for 循环中的数组列表内的数组列表中重复 Recylerview Koltin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60034989/