임세준
임세준

Reputation: 154

recyclerview in kotlin returns only 1 item

I don't know why it presents only one item.

class MyRecyclerviewAdapter : RecyclerView.Adapter<MyRecyclerviewAdapter.MyViewHolder>() {
    val mData = arrayListOf<CardviewItem>(CardviewItem("TEST", "TEST1"), CardviewItem("TEST", "TEST2"), CardviewItem("AAA", "ABBB"))

    inner class MyViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val imageview_cardview = itemView.findViewById<AppCompatImageView>(R.id.imageview_cardview)
        val textview_cardview = itemView.findViewById<TextView>(R.id.textview_cardview)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MyViewHolder {
        return MyViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.cardview_items, parent, false))
    }

    override fun getItemCount(): Int {
        return mData.size
    }

    override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
            holder.imageview_cardview.setImageResource(R.drawable.ic_android_black_24dp)
            holder.textview_cardview.setText(mData[position].text)
    }
}

Upvotes: 1

Views: 199

Answers (1)

Soumik Bhattacharjee
Soumik Bhattacharjee

Reputation: 945

What is CardviewItem here? If CardviewItem is a model class containing two String type field, you can initilaize it like this:

val list = ArrayList<CardviewItem>()

Then you can get the value like this:

list[position].field1
list[position].field2

Upvotes: 2

Related Questions