How can I do it? What I want is for me to show only the items that within the holder.textEstado.text = filtro.estadoPartido contain the string "Pending" and this is what I do:
import android.annotation.SuppressLint
import android.content.Context
import android.graphics.Color
import android.os.Build
import android.support.annotation.RequiresApi
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import com.ramon.rafelcf.Jornadas.ModelJor
import com.ramon.rafelcf.R
import com.ramon.rafelcf.global.Directions
import com.squareup.picasso.Picasso
import de.hdodenhof.circleimageview.CircleImageView
import java.text.SimpleDateFormat
import java.util.*
import kotlin.collections.ArrayList
class AdapNJ(internal var context: Context, internal var listJornadas: List<ModelJor>) : RecyclerView.Adapter<AdapNJ.ViewHolder>() {
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
val itemView = LayoutInflater.from(parent.context).inflate(R.layout.jornadas_row, parent, false)
return ViewHolder(itemView)
}
@RequiresApi(Build.VERSION_CODES.O)
@SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val jornada = listJornadas[position]
val array: ArrayList<ModelJor> = ArrayList()
val filtro: ModelJor? = array.find{ it.estadoPartido == "Pendiente"}
val fecha = jornada.fecha
if (fecha == ""){
holder.textFecha.text = ""
}else{
val fecha = filtro!!.fecha + Directions.ANYO1
val parser = SimpleDateFormat("dd/MM/yyyy")
val date = parser.parse(fecha) as Date
val espanol = Locale("es", "ES")
val formatter = SimpleDateFormat("EEEE dd 'de' MMMM 'del 'yyyy \n' a las '", espanol)
holder.textFecha.text = (formatter.format(date)) + filtro.hora
}
holder.textEquipoLocal.text = filtro!!.nomLocal
holder.textResulLocal.text = filtro.resulLocal
holder.textEstado.text = filtro.estadoPartido
holder.textResulVisi.text = filtro.resulVisitante
holder.textEquipovisi.text = filtro.nomVisitante
if(filtro.resulLocal!! < filtro.resulVisitante.toString()) {
holder.textResulLocal.setTextColor(Color.RED)
holder.textResulVisi.setTextColor(Color.GREEN)
}else if(filtro.resulLocal!! > filtro.resulVisitante.toString()) {
holder.textResulLocal.setTextColor(Color.GREEN)
holder.textResulVisi.setTextColor(Color.RED)
}
Picasso.get()
.load("http://ffcv.es/ncompeticiones/" + filtro.escudoLocal)
.placeholder(R.mipmap.ic_launcher_round)
.resize(50, 50)
.centerCrop()
.into(holder.imageEscLocal)
Picasso.get()
.load("http://ffcv.es/ncompeticiones/" + filtro.escudoVisitante)
.placeholder(R.mipmap.ic_launcher_round)
.resize(50, 50)
.centerCrop()
.into(holder.imageEscVisi)
}
override fun getItemCount(): Int = listJornadas.size
class ViewHolder(view: View) : RecyclerView.ViewHolder(view) {
var textFecha: TextView = itemView!!.findViewById(R.id.tv_Fecha)as TextView
var textEstado: TextView = itemView!!.findViewById(R.id.tv_Estado) as TextView
var textEquipoLocal: TextView = itemView!!.findViewById(R.id.tv_Amarillas) as TextView
var textResulLocal: TextView = itemView!!.findViewById(R.id.tv_Result_Local)as TextView
var imageEscLocal: CircleImageView = itemView!!.findViewById(R.id.tv_esc_local) as CircleImageView
var textEquipovisi: TextView = itemView!!.findViewById(R.id.tv_Equipo_Visitante) as TextView
var textResulVisi: TextView = itemView!!.findViewById(R.id.tv_Result_Visitante) as TextView
var imageEscVisi: CircleImageView = itemView!!.findViewById(R.id.tv_esc_visi) as CircleImageView
}
}
The error: kotlin.KotlinNullPointerException at com.ramon.rafelcf.Jornadas.SinJugar.AdapNJ.onBindViewHolder (AdapNJ.kt: 48) com.ramon.rafelcf.Jornadas.SinJugar.AdapNJ.onBindViewHolder (AdapNJ.kt: 22)
Any suggestions?