Я загружаю данные JSON из Интернета, собираю данные об элементах, таких как имя, автор и imageurl.Затем я хочу загрузить их один под другим, чтобы поместить их в список.Я добавляю их только один раз как пользовательский класс, который содержит только эти переменные.
У меня проблема с дублированием этих значений, и они не отображаются должным образом.Например, он будет загружать первые 5 элементов (из 20) и повторять их в течение оставшихся 15. Я не понимаю, почему это происходит, также пытался зацикливаться на массиве listview items
и распечатывать их, и онивсе по-другому, также пытался сделать на них функцию refresh (), но, похоже, это ничего не меняет.
Я добавляю код, который использую для создания списка, и часть, которую яиспользуя, чтобы заполнить его.
val lv = listview<Item>{
anchorpaneConstraints {
topAnchor = 0.0
bottomAnchor = 0.0
leftAnchor = 0.0
rightAnchor = 0.0
}
cellFormat {
graphic = cache {
form {
fieldset {
hbox {
spacing = 10.0
println(it.name)
println(it.author)
println(it.imgurl)
println(it.desc)
imageview {
image = Image(it.imgurl)
prefWidth(256.0)
prefHeight(256.0)
}
vbox {
field("Name") {
label(it.name)
}
field("Author") {
label(it.author)
}
field("Description") {
label {
text = it.desc
wrapWidth = 150
}
}
}
}
}
}
}
}
}
val tmpItems = items.clone() as ArrayList<JsonObject>()
val arr = ArrayList<Item>()
for (m in tmpItems) {
arr.add(
Item(
m["name"].toString(),
m["author"].toString(),
m["desc"].toString(),
m["imgUrl"].toString()
)
)
}
lv.items.addAll(arr)
Я ожидал, что на выходе будет 20 уникальных предметов, как в lv.items
, но показанный результат - 5 уникальных предметов, повторяющихся в 20 строках.