Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Caster
Člen
Avatar
Caster:27.9.2020 13:48

Přestože mi ukázkový příklad Mars Real Estate Mars Real Estate v pohodě fungoval, po přidání dalších prvků pro zobrazení fotek mi překlad hlásí chybu:

cannot find symbol class class GridViewItemBin­dingImpl

Podle návodu, Clean a Rebuild programu chybu neodstraní.

Jde o část návodu viz odkaz výše:

9. In MarsPropertyVi­ewHolder, create a bind() method that takes a MarsProperty object as an argument and sets binding.property to that object. Call executePendin­gBindings() after setting the property, which causes the update to execute immediately.

fun bind(marsProperty: MarsProperty) {
   binding.property = marsProperty
   binding.executePendingBindings()
}

Note: This change may result in data-binding errors in Android Studio. To resolve those errors, you may need to clean and rebuild the app.

Zkusil jsem: PhotoGridAdapter.kt

package com.example.android.marsrealestate.overview

import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
import com.example.android.marsrealestate.databinding.GridViewItemBinding
import com.example.android.marsrealestate.network.MarsProperty

class PhotoGridAdapter : ListAdapter<MarsProperty,
        PhotoGridAdapter.MarsPropertyViewHolder>(DiffCallback) {
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MarsPropertyViewHolder {
        return MarsPropertyViewHolder(GridViewItemBinding.inflate(
                LayoutInflater.from(parent.context)))
    }

    override fun onBindViewHolder(holder: MarsPropertyViewHolder, position: Int) {
        val marsProperty = getItem(position)
        holder.bind(marsProperty)
    }
    companion object DiffCallback : DiffUtil.ItemCallback<MarsProperty>() {
        override fun areItemsTheSame(oldItem: MarsProperty,
                                     newItem: MarsProperty): Boolean {
            return oldItem === newItem
        }

        override fun areContentsTheSame(oldItem: MarsProperty,
                                        newItem: MarsProperty): Boolean {
            return oldItem.id == newItem.id
        }
    }
    class MarsPropertyViewHolder(private var binding:
                                 GridViewItemBinding):
            RecyclerView.ViewHolder(binding.root){
        fun bind(marsProperty: MarsProperty) {
            binding.property = marsProperty
            binding.executePendingBindings()
        }
    }
}

Chci docílit: Aby program fungoval a správně zobrazil obrázky

 
Odpovědět
27.9.2020 13:48
Avatar
Caster
Člen
Avatar
Caster:28.9.2020 0:48

Omylem jsem smazal část kódu v jiné části, opraveno a nyní se program zkompiloval bez problémů.

 
Nahoru Odpovědět
28.9.2020 0:48
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.