Skip to content

Instantly share code, notes, and snippets.

@Foreman76
Created February 21, 2021 07:26
Show Gist options
  • Save Foreman76/16c760f1af95ad093dcd85c3080952e2 to your computer and use it in GitHub Desktop.
Save Foreman76/16c760f1af95ad093dcd85c3080952e2 to your computer and use it in GitHub Desktop.
package ru.int24.scandm.adapters
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import ru.int24.scandm.R
import ru.int24.scandm.models.DBDocument
class AdapterTrade(private var listener: HandlerItemClickRecyclerView): RecyclerView.Adapter<AdapterTrade.TradeViewHolder>() {
private var dataTrade: MutableList<DBDocument> = mutableListOf<DBDocument>()
class TradeViewHolder(itemview: View): RecyclerView.ViewHolder(itemview) {
val documentPerformance: TextView = itemView.findViewById(R.id.documentPerformance)
val documentPartner: TextView = itemView.findViewById(R.id.documentPartner)
val documentSumma: TextView = itemView.findViewById(R.id.documentsumma)
val textPartner = itemView.context.resources.getString(R.string.textPartner)
val textSumma = itemView.context.resources.getString(R.string.textSumma)
fun bind(item: DBDocument, listener: HandlerItemClickRecyclerView?){
val tSumma = textSumma+" "+item.documentSumma
val tPartner = textPartner+" " +item.customer
documentPerformance.text = item.documentPerformance
documentPartner.text = tPartner
documentSumma.text = tSumma
if (listener != null) {
itemView.setOnClickListener { listener.onItemClick(item.documentUID) }
itemView.setOnLongClickListener(object : View.OnLongClickListener{
override fun onLongClick(v: View?): Boolean {
listener.onlongItemClick()
return true
}
})
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AdapterTrade.TradeViewHolder {
return TradeViewHolder(itemview = LayoutInflater.from(parent.context).inflate(R.layout.item_rc, parent, false))
}
override fun onBindViewHolder(holder: AdapterTrade.TradeViewHolder, position: Int) {
val item = dataTrade[position]
holder.bind(item, listener)
}
override fun getItemCount(): Int {
return dataTrade.size
}
fun refreshAdapter(lDocument: MutableList<DBDocument>){
this.dataTrade.clear()
this.dataTrade.addAll(lDocument)
notifyDataSetChanged()
}
interface HandlerItemClickRecyclerView{
fun onItemClick(docUID:String)
fun onlongItemClick()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment