Требуемый тип отличается от найденного - PullRequest
0 голосов
/ 18 мая 2019

Я пытаюсь построить класс Alarm, ArrayList of ALarm и RecyclerView, используя этот ArrayList

Уже искал везде, где ничего не актуально

    override fun onBindViewHolder(holder: RecyclerAdapter.AlarmHolder, position: Int) {
        val itemAlarm = alarmlist.get(position)
            holder.onClick(itemAlarm)
    }

ошибка при holder.onClick(itemAlarm) найдено Alarm при необходимости View.Видите, я столкнулся с этой проблемой сегодня, не смог ее решить, и сейчас 01:30, где я нахожусь, поэтому я уже очень старался.Может кто-нибудь объяснить, как мне решить эту проблему?Спасибо за подробный ответ по этой проблеме:)

Полный класс RecyclerAdapter ниже

package com.example.alarm

import android.app.TimePickerDialog
import android.content.Context
import android.support.v7.widget.RecyclerView
import android.view.View
import android.view.ViewGroup
import android.widget.TextView
import android.widget.TimePicker
import android.widget.Toast
import org.w3c.dom.Text
import java.util.*
import kotlin.collections.ArrayList

class RecyclerAdapter(private val alarmlist: ArrayList<Alarm>) :
    RecyclerView.Adapter<RecyclerAdapter.AlarmHolder>()  {

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerAdapter.AlarmHolder {
        val inflatedView = parent.inflate(R.layout.recycler_item_row, false)
        return AlarmHolder(inflatedView)
    }

    override fun getItemCount(): Int {
        return alarmlist.size
    }

    override fun onBindViewHolder(holder: RecyclerAdapter.AlarmHolder, position: Int) {
        val itemAlarm = alarmlist.get(position)
            holder.onClick(itemAlarm)
    }

    //1
    class AlarmHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener {
        //2
        private var view: View = v
        private lateinit var context: Context

        // redundant
        init {
            v.setOnClickListener(this)
        }

        //4
        override fun onClick(v: View) {
            /*Code below
            * is used to pick Time*/
            fun clickTimePicker(view: View) {
                val c = Calendar.getInstance()
                val hour = c.get(Calendar.HOUR)
                val minute = c.get(Calendar.MINUTE)
                /* Context may generate error
                * context not inisitalized*/
                var itemtitle: TextView ?= null


                val tpd = TimePickerDialog(context, TimePickerDialog.OnTimeSetListener(function =  {
                        view, h, m ->
                    Toast.makeText(context, h.toString() + " : " + m + " : ", Toast.LENGTH_LONG).show()
                    /*Passing value of Hour
                     minute
                     to textView*/
                    itemtitle?.setText(h.toString() + " " + m.toString())

                }),hour,minute,false)

                tpd.show()
            }
        }

        companion object {
            //5
            private val PHOTO_KEY = "PHOTO"
        }
    }
}

Класс аварийных сигналов

package com.example.alarm

import android.widget.TimePicker

data class Alarm(val timepicker: TimePicker) {


}

1 Ответ

0 голосов
/ 19 мая 2019

Почему вы вызываете onClick ()?Это ошибка!В onBindViewHolder () вы должны связать представление с вашей моделью itemAlarm.

Может быть, вы хотите установить setOnClickListenter (yourClickListener)?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...