o Recycler Adapter


As views usadas para o adaptador RecyclerView serão apenas TextViews por enquanto e uma lista simples de textos que criaremos manualmente. Adicione um novo arquivo do Kotlin chamado ForecastListAdapter.kt e inclua este código:

Kotlin

      
class ForecastListAdapter(val items: List<String>) :
    RecyclerView.Adapter<ForecastListAdapter.ViewHolder>() {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int):
                 ViewHolder {
        return ViewHolder(TextView(parent.context))
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.textView.text = items[position]
    }

    override fun getItemCount(): Int = items.size

    class ViewHolder(val textView: TextView) : RecyclerView.ViewHolder(textView)
}
      

Podemos acessar o contexto e o texto como propriedades. Você pode continuar fazendo isso normalmente (usando getters e setter), mas receberá um aviso do compilador. Essa verificação pode ser desativada se você preferir continuar usando o modo Java.

De volta à MainActivity, vamos criar a lista de strings e, em seguida, uma instância do adapter:

Kotlin

      
private val items = listOf(
    "Mon 6/23 - Sunny - 31/17",
    "Tue 6/24 - Foggy - 21/8",
    "Wed 6/25 - Cloudy - 22/17",
    "Thurs 6/26 - Rainy - 18/11",
    "Fri 6/27 - Foggy - 21/10",
    "Sat 6/28 - TRAPPED IN WEATHERSTATION - 23/18",
    "Sun 6/29 - Sunny - 20/7"
)

override fun onCreate(savedInstanceState: Bundle?) {
     ...
    val forecastList = findViewById(R.id.forecast_list) as RecyclerView
    forecastList.layoutManager = LinearLayoutManager(this)
    forecastList.adapter = ForecastListAdapter(items)
}