Kotlin Тип несоответствия: предполагаемый тип View! но TextView ожидался

Добрый день! Используя Kotlin 1.1.51 в Android Studio 3.0 , ориентируясь на Android API 26 чтобы создать RecyclerView со следующим ViewHolder , но получая ошибку при построении проекта:

Тип несоответствия: выведенный тип – вид! но TextView ожидался

Поэтому я не могу найти TextView непосредственно в переменной ViewHolder , но нашел вокруг него – найдите «Вид» и после этого произнесет с помощью as TextView как вы можете видеть в коде для holder. TextView. Не выглядит так хорошо, так есть решения, как предотвратить эту ошибку или это ошибка? Код RecyclerView .Adapter:

  override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): VH { val view = LayoutInflater.from(parent.context) .inflate(R.layout.custom_item_view, parent, false) return VH(view) } override fun onBindViewHolder(holder: VH, position: Int) { val event: TimelineEvent = items[position] // does not work because of error in VH class holder.timeView.text = event.time // works (holder.textView as TextView).text = event.text } class VH(itemView: View) : RecyclerView.ViewHolder(itemView) { // error: Type mismatch: inferred type is View! but TextView was expected val timeView: TextView = itemView.findViewById(R.id.timeline_item_time) // works fine val textView: View = itemView.findViewById(R.id.timeline_item_text) } 

Вам просто нужно отобразить найденный вид как ожидаемый тип, чтобы сделать это:

 val timeView: TextView = itemView.findViewById(R.id.timeline_item_time) as TextView 

или

 val timeView: TextView = itemView.findViewById<TextView>(R.id.timeline_item_time) 

Кажется, что вы еще не на уровне API 26 или новее. Именно тогда findViewById был изменен так, что он возвращает общий T вместо базового класса View , который позволяет использовать его из Kotlin этими способами .

Вы можете вручную указать результат вызова findViewById как @AlexTa, предложенный в другом ответе , или вы можете обновить версию своей поддерживающей версии до 26 или более поздней версии – последняя в настоящее время составляет 27.0.0 . Эти новые версии доступны в репозитории Google Maven .