Advertisement
Guest User

CityAdapter

a guest
Nov 15th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. package training.androidkotlin.weather.city
  2.  
  3. import android.content.Context
  4. import android.support.v7.widget.CardView
  5. import android.support.v7.widget.RecyclerView
  6. import android.util.Log
  7. import android.view.LayoutInflater
  8. import android.view.View
  9. import android.view.ViewGroup
  10. import android.widget.ImageView
  11. import android.widget.TextView
  12. import emmanuel.ocr.com.weather.R
  13. import emmanuel.ocr.com.weather.city.City
  14.  
  15. class CityAdapter(private val cities: List<City>,
  16. private val cityListener: CityAdapter.CityItemListener)
  17. : RecyclerView.Adapter<CityAdapter.ViewHolder>(), View.OnClickListener {
  18.  
  19. interface CityItemListener {
  20. fun onCitySelected(city: City)
  21. fun onCityDeleted(city: City)
  22. }
  23.  
  24. class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
  25. val cardView = itemView.findViewById<CardView>(R.id.card_view)!!
  26. val cityNameView = itemView.findViewById<TextView>(R.id.name)!!
  27. val deleteView = itemView.findViewById<View>(R.id.delete)!!
  28. }
  29.  
  30. override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
  31. val viewItem = LayoutInflater.from(parent.context)
  32. .inflate(R.layout.item_city, parent, false)
  33. return ViewHolder(viewItem)
  34. }
  35.  
  36. override fun onBindViewHolder(holder: ViewHolder, position: Int) {
  37. val city = cities[position]
  38. with(holder) {
  39. cardView.setOnClickListener(this@CityAdapter)
  40. cardView.tag = city
  41. cityNameView.text = city.name
  42. deleteView.tag = city
  43. deleteView.setOnClickListener(this@CityAdapter)
  44. }
  45. }
  46.  
  47. override fun getItemCount(): Int = cities.size
  48.  
  49. override fun onClick(v: View) {
  50. when (v.id) {
  51.  
  52. R.id.card_view -> cityListener.onCitySelected(v.tag as City)
  53.  
  54. R.id.delete -> cityListener.onCityDeleted(v.tag as City)
  55. }
  56. Log.i("test", "clicked")
  57. }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement