为什么在RecyclerView中仅显示数组的最后一个元素?

时间:2020-04-10 00:57:09

标签: android kotlin android-recyclerview

所以我有一个包含书籍的数组,我在recyclerView中显示它,但是仅显示数组的最后一个元素。

这是我的代码:

 backendManager.getAllBookPlaces(object: BackendManager.MyCallbackPlaces {
        override fun onCallback(value: ArrayList<BookPlace>) {
            Log.d("VALUE", value.size.toString())
            name = intent.getStringExtra("NAME")

             value.forEach {
                 println(it.name)
                 if (it.name == name ) {
                     it.books!!.forEach {it->
                         var book: Book? = null
                         book = it
                         Log.d("VALUE", book.title)
                         bookList!!.add(book)
                     }

                     Log.d("VALUE", value.size.toString())

                 }

            // Log.d("START", bookList?.let { backendManager.getAllBooks(it) }!!.size.toString())
            rv_book_list.layoutManager = LinearLayoutManager(this@BookPlaceActivity)

            // Access the RecyclerView Adapter and load the data into it
            rv_book_list.adapter = RecycleAdapter(bookList,this@BookPlaceActivity)
            Log.d("END", bookList!!.size.toString())
             }
        }

    })

这是我的OnBindViewHolder。我相信这里可能有些东西,但我不确定。 RecyclerView

   override fun onBindViewHolder(holder: ViewHolder, position: Int) {

    items?.forEach {

        holder?.tvBookTitle?.text =  it.title //items?.get(position)
        holder?.tvBookAuthor.text = it.author

        var ref =  FirebaseStorage.getInstance().getReference("/images/${it.image}")
        ref.downloadUrl.addOnSuccessListener {it->
            Glide.with(context) //1
                    .load(it.toString())
                    .error(R.drawable.book_icon)
                    .fitCenter()
                   // .transform(CircleCrop())
                    .into(holder?.imagePic!!)
        }

        if (!it.isTaken) {
            holder?.tvAvailable.text = "Available"
        }
    }

}

0 个答案:

没有答案
相关问题