jeudi 12 novembre 2020

android checkbox recyclerview using kotlin

i wanna ask something about my code.

so, I wanna retrieve the data that i have selected in the checkbox recyclerview, and then put it into variabel arraylist. and then when i click button next, i can use variabel arraylist in main code and then i can move to next page. can you help me to add that code on my coding?

anyway i use kotlin, so i need code kotlin

here my main coding

 private fun getData() {
    mDatabaseReference.addValueEventListener(object : ValueEventListener {
        override fun onCancelled(databaseError: DatabaseError) {
            Toast.makeText(this@ChooseCategoryActivity, ""+databaseError.message, Toast.LENGTH_SHORT).show()
        }

        override fun onDataChange(dataSnapshot: DataSnapshot) {
            dataCategory.clear()


            for(getdataSnapshot in dataSnapshot.getChildren()) {
                Log.i("dataKey", getdataSnapshot.key.toString())
                val kategori = getdataSnapshot.getValue(Kategori::class.java)
                dataCategory.add(kategori!!)
            }

            rv_user_kategori.adapter = UserCategoryAdapter(dataCategory) {

            }
        }

    })

here my adapter recyclerview

class UserCategoryAdapter(private var data: List<Kategori>, private var listener: (Kategori) -> Unit) : RecyclerView.Adapter<UserCategoryAdapter.ViewHolder>() {


lateinit var ContextAdapter : Context

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
    val layoutInflater = LayoutInflater.from(parent.context)
    ContextAdapter = parent.context
    val inflatedView = layoutInflater.inflate(R.layout.layout_row_kategori, parent, false)
    return ViewHolder(inflatedView)
}

override fun getItemCount(): Int = data.size

override fun onBindViewHolder(holder: UserCategoryAdapter.ViewHolder, position: Int) {
    holder.bindItem(data[position], listener,ContextAdapter, position)
}

class ViewHolder(v: View) : RecyclerView.ViewHolder(v) {
    private val namaKategori:TextView = v.findViewById(R.id.txt_row_kategori)
    var checkbox:CheckBox = v.findViewById(R.id.txt_row_kategori)


    fun bindItem(data: Kategori, listener: (Kategori) -> Unit, context : Context, position : Int) {
        namaKategori.text = data.nama

        itemView.setOnClickListener {
                listener(data)

        }
    }
}

}

please help me to find that solution.




Aucun commentaire:

Enregistrer un commentaire