Skip to content

Instantly share code, notes, and snippets.

@sajjadjaved01
Last active August 18, 2019 08:58
Show Gist options
  • Save sajjadjaved01/7f3919afc38515e002e429bd43abd154 to your computer and use it in GitHub Desktop.
Save sajjadjaved01/7f3919afc38515e002e429bd43abd154 to your computer and use it in GitHub Desktop.
Get RecyclerView onItemClick to parent activity. Android
package com.reactivespace.tylsinmcwalet.ui
import android.text.TextUtils
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide
import com.reactivespace.tylsinmcwalet.R
import com.reactivespace.tylsinmcwalet.data.models.CoinDetail
import kotlinx.android.synthetic.main.activity_chat.view.*
import kotlinx.android.synthetic.main.activity_chat.view.textViewTitle
import kotlinx.android.synthetic.main.cardview_addwallet.view.*
import java.util.*
class WalletsListAdapter(var list: ArrayList<CoinDetail>) : RecyclerView.Adapter<WalletsListAdapter.WalletsItemViewHolder>() {
lateinit var view: View
private var onItemClickListener: ((CoinDetail?) -> Unit)? = null
//todo we have onitemclick listner here to get it in parent activity.
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WalletsItemViewHolder {
view = LayoutInflater.from(parent.context).inflate(R.layout.cardview_addwallet, parent, false)
return WalletsItemViewHolder(view)
}
override fun getItemCount(): Int {
return list.size
}
override fun onBindViewHolder(holder: WalletsItemViewHolder, position: Int) {
val go = list[position]
/* holder.cardV.setOnClickListener {
if (go.isAccountStatus) {
go.isAccountStatus = false
holder.imageViewSelection.setImageResource(R.drawable.addunselect)
} else {
go.isAccountStatus = true
holder.imageViewSelection.setImageResource(R.drawable.ic_tick)
}
} */
holder.bind(list[position], onItemClickListener)
}
fun getAllCoins() = list
class WalletsItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
fun bind(memberModel: CoinDetail, onItemClickListener: ((memberModel: CoinDetail) -> Unit)?) {
itemView.textViewTitle.text = memberModel.name
itemView.textViewSubTitle.text = memberModel.symbol
itemView.setOnClickListener { onItemClickListener?.invoke(memberModel) }
}
}
fun setOnItemClickListener(onItemClickListener: ((CoinDetail?) -> Unit)?) {
this.onItemClickListener = onItemClickListener
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment