NewsAdapter.kt 2.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package io.r_a_d.radio2.ui.news
  2. import android.annotation.SuppressLint
  3. import android.widget.TextView
  4. import android.view.LayoutInflater
  5. import android.view.ViewGroup
  6. import androidx.constraintlayout.widget.ConstraintLayout
  7. import androidx.core.text.HtmlCompat
  8. import androidx.core.widget.TextViewCompat
  9. import androidx.recyclerview.widget.RecyclerView
  10. import io.r_a_d.radio2.R
  11. import kotlin.collections.ArrayList
  12. class NewsAdapter(private val dataSet: ArrayList<News>
  13. /*,
  14. context: Context,
  15. resource: Int,
  16. objects: Array<out Song>*/
  17. ) : RecyclerView.Adapter<NewsAdapter.MyViewHolder>() /*ArrayAdapter<Song>(context, resource, objects)*/ {
  18. // Provide a reference to the views for each data item
  19. // Complex data items may need more than one view per item, and
  20. // you provide access to all the views for a data item in a view holder.
  21. // Each data item is just a string in this case that is shown in a TextView.
  22. class MyViewHolder(view: ConstraintLayout) : RecyclerView.ViewHolder(view)
  23. // Create new views (invoked by the layout manager)
  24. override fun onCreateViewHolder(parent: ViewGroup,
  25. viewType: Int): MyViewHolder {
  26. // create a new view
  27. val view = LayoutInflater.from(parent.context)
  28. .inflate(R.layout.news_view, parent, false) as ConstraintLayout
  29. // set the view's size, margins, paddings and layout parameters
  30. //...
  31. return MyViewHolder(view)
  32. }
  33. // Replace the contents of a view (invoked by the layout manager)
  34. @SuppressLint("SetTextI18n")
  35. override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
  36. val title = holder.itemView.findViewById<TextView>(R.id.news_title)
  37. val text = holder.itemView.findViewById<TextView>(R.id.news_text)
  38. val author = holder.itemView.findViewById<TextView>(R.id.news_author)
  39. val header = holder.itemView.findViewById<TextView>(R.id.news_header)
  40. title.text = dataSet[position].title
  41. text.text = HtmlCompat.fromHtml(dataSet[position].text, HtmlCompat.FROM_HTML_MODE_LEGACY)
  42. header.text = HtmlCompat.fromHtml(dataSet[position].header, HtmlCompat.FROM_HTML_MODE_LEGACY).replace(Regex("\n"), " ")
  43. author.text = "| ${dataSet[position].author}"
  44. TextViewCompat.setAutoSizeTextTypeWithDefaults(author, TextViewCompat.AUTO_SIZE_TEXT_TYPE_UNIFORM)
  45. }
  46. // Return the size of your dataset (invoked by the layout manager)
  47. override fun getItemCount() = dataSet.size
  48. /*
  49. override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
  50. // create a new view
  51. val view = LayoutInflater.from(parent.context)
  52. .inflate(R.layout.song_view, parent, false) as ConstraintLayout
  53. }
  54. */
  55. }