Ваш ChildDataItems
находится вне области действия * oop. Новые элементы добавляются для первого родительского элемента 2 раза, но затем список остается прежним, и новые элементы добавляются в список, в то время как другие 2 уже находятся там. Таким образом, ваш третий родительский элемент заканчивается списком из 6 дочерних элементов!
Объявите свой список дочерних элементов в области l oop, а не как внешний
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)
}
PS Имена ваших переменных должны начинаться с букв нижнего регистра, а имена классов / интерфейсов должны начинаться с букв верхнего регистра. Этот стиль кода обычно используется в современной Java / Kotlin production