Android 对于每个循环,旧值都会重复
我从Firebase获得了价值观。但当我尝试在数组中添加值时,问题就出现了。以前的值会重复出现。谁能告诉我如何将值放入数组中。我想在recyclerview中显示这些值 代码:Android 对于每个循环,旧值都会重复,android,firebase,kotlin,google-cloud-firestore,Android,Firebase,Kotlin,Google Cloud Firestore,我从Firebase获得了价值观。但当我尝试在数组中添加值时,问题就出现了。以前的值会重复出现。谁能告诉我如何将值放入数组中。我想在recyclerview中显示这些值 代码: bookCollection .get().addOnSuccessListener { booksSnapshot-> if (!booksSnapshot.isEmpty){
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)
}
}
}
}
在主课堂上提前感谢(列表添加):-
添加(新的yourpojoname(您的价值))
在PoJo类中:-
创建构造函数:-
-->公共构造函数名称(字符串s){(您的值)=s;}
注意:-yourpojoname==constructorName在添加新值之前,必须清除ForEach循环
booksArray
。
因为当您添加作为数组中下一项添加的新值时
在使用booksArray.add(book)的位置添加新值之前,请使用booksArray.clear()
将此var booksArray=arrayListOf()
替换为var booksArray=ArrayList()
能否以我无法理解的正确方式发送给我。如果您的书是pojo,那么您可以尝试此-->booksArray.add(新书(书));因此,它将创建新的构造函数,您必须像这样在该构造函数中写入..-->这本书;注意:-this.book是您的pojo变量,您将在其中从pojo获取值。它清除整个数组,从而从数组中删除我的旧值。我认为这不是用户的完美解决方案
E/books: [co.myapp.myapplication.Book@d6f7f62]
E/books: [co.myapp.myapplication.Book@d6f7f62, co.syntags.myapplication.Book@93c49b0]