Filter in adapter

0

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?

    
asked by Rafel C.F 23.12.2018 в 10:19
source

0 answers