Ya casiii
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package com.example.basurapp.adapters
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewGroup
|
||||
import androidx.recyclerview.widget.DiffUtil
|
||||
import androidx.recyclerview.widget.ListAdapter
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.example.basurapp.databinding.ItemAddressBinding
|
||||
import com.example.basurapp.models.Address
|
||||
|
||||
class AddressesAdapter(
|
||||
private val onDelete: (Address) -> Unit
|
||||
) : ListAdapter<Address, AddressesAdapter.AddressViewHolder>(DIFF) {
|
||||
|
||||
inner class AddressViewHolder(val binding: ItemAddressBinding) :
|
||||
RecyclerView.ViewHolder(binding.root) {
|
||||
|
||||
fun bind(address: Address) {
|
||||
binding.tvStreet.text = "${address.street} ${address.number}"
|
||||
binding.tvNeighborhood.text = address.neighborhood
|
||||
if (address.reference.isNotEmpty()) {
|
||||
binding.tvReference.text = address.reference
|
||||
binding.tvReference.visibility = android.view.View.VISIBLE
|
||||
} else {
|
||||
binding.tvReference.visibility = android.view.View.GONE
|
||||
}
|
||||
binding.btnDelete.setOnClickListener { onDelete(address) }
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): AddressViewHolder {
|
||||
val binding = ItemAddressBinding.inflate(
|
||||
LayoutInflater.from(parent.context), parent, false
|
||||
)
|
||||
return AddressViewHolder(binding)
|
||||
}
|
||||
|
||||
override fun onBindViewHolder(holder: AddressViewHolder, position: Int) {
|
||||
holder.bind(getItem(position))
|
||||
}
|
||||
|
||||
companion object {
|
||||
val DIFF = object : DiffUtil.ItemCallback<Address>() {
|
||||
override fun areItemsTheSame(oldItem: Address, newItem: Address) = oldItem.id == newItem.id
|
||||
override fun areContentsTheSame(oldItem: Address, newItem: Address) = oldItem == newItem
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user