gpt4 book ai didi

android - 旧值在 For each 循环中重复

转载 作者:行者123 更新时间:2023-11-29 00:54:12 26 4
gpt4 key购买 nike

我正在从 Firebase 获取值。但是当我尝试在数组中添加值时会出现问题,以前的值会重复。谁能告诉我如何将值放入 Array 。我想在 recyclerview 中显示这些值。

代码:

    bookCollection
.get().addOnSuccessListener {
booksSnapshot->
if (!booksSnapshot.isEmpty){
var booksArray = arrayListOf<Book>()
for (bookSnapshot in booksSnapshot.documents){
val hashmap = bookSnapshot.data
hashmap?.put("id", bookSnapshot.id)
bookCollection.document(bookSnapshot.id).collection("pages")
.get().addOnSuccessListener {
pagesSnapshot->
hashmap?.put("page_count", pagesSnapshot.documents.size)
val bookData = Gson().toJson(hashmap)
val book = Gson().fromJson<Book>(bookData, Book::class.java)
booksArray.add(book)
}

}
}
}

记录数组:

E/books: [co.myapp.myapplication.Book@d6f7f62]
E/books: [co.myapp.myapplication.Book@d6f7f62, co.syntags.myapplication.Book@93c49b0]

提前致谢

最佳答案

您必须清除 ForEach 循环 booksArray在添加新值之前。因为当您添加新值时,它会作为数组中的下一项添加。

使用 booksArray.clear()在使用 booksArray.add(book) 添加新值之前

替换这个 var booksArray = arrayListOf<Book>()var booksArray = ArrayList<Book>()

关于android - 旧值在 For each 循环中重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56406059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com