Почему onBindViewHolder не находит элементы по id? Ошибка "Unresolved reference"

Рейтинг: 0Ответов: 1Опубликовано: 15.05.2023

Не находит элементы по id, получаю ошибку:

Unresolved reference

Код адаптера:

package com.OxGomer.exchangerates.screens.start
import android.annotation.SuppressLint
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
import com.OxGomer.exchangerates.R
import com.OxGomer.exchangerates.model.cash.CashItem

class StartAdapter:RecyclerView.Adapter<StartAdapter.StartViewHolder>() {

    var listStart = emptyList<CashItem>()

    class StartViewHolder(view: View):RecyclerView.ViewHolder(view)

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): StartViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.item_money_layout, parent, false)
        return StartViewHolder(view)
    }

    override fun onBindViewHolder(holder: StartViewHolder, position: Int) {
        holder.itemView.item_name.text = listStart[position].ccy // тут ошибка Unresolved reference: item_name
        holder.itemView.item_buy.text = listStart[position].buy // тут ошибка Unresolved reference: item_buy
        holder.itemView.item_sale.text = listStart[position].sale  // тут ошибка Unresolved reference: item_sale
    }

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

    @SuppressLint("NotifyDataSetChanged")
    fun setList(list: List<CashItem>){
        listStart = list
        notifyDataSetChanged()
    }
} 

Разметка:

<?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="3dp">
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:padding="8dp">

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Валюта:"
                android:textColor="@color/orange"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:text="Купівля:"
                android:textColor="@color/green"
                android:textStyle="bold" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="8dp"
                android:text="Продаж:"
                android:textColor="@color/blue"
                android:textStyle="bold" />
        </LinearLayout>

        <View
            android:layout_width="1dp"
            android:layout_height="match_parent"
            android:layout_marginStart="8dp"
            android:layout_marginEnd="8dp"
            android:background="#535659" />

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <TextView
                android:id="@+id/item_name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="USD"/>
            <TextView
                android:id="@+id/item_buy"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="37.1"
                android:layout_marginTop="8dp"/>
            <TextView
                android:id="@+id/item_sale"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="37.1"
                android:layout_marginTop="8dp"/>
        </LinearLayout>



    </LinearLayout>

</androidx.cardview.widget.CardView> 

Ответы

▲ 0Принят

Чтобы найти view по id, воспользуйтесь методом findViewById:

val itemName = holder.itemView.findViewById<TextView>(R.id.item_name)

Теперь вы cможете задать текст для этой text view:

itemName.text = "my text"