Erreur view.findViewById

Dorian -  
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   -

Bonjour j'ai une erreur etje ne trove pas la source, il me dit que le point entre view et findViewById est incorrect, et ça se déclache quand je mets "RecycleView" dans les <> 

(tout ça est en Kotlin)

package fr.dorian.opaleapplication2.fragments

import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.RecyclerView
import fr.dorian.opaleapplication2.R
import fr.dorian.opaleapplication2.adapter.Projectadapter
import android.view.ViewGroup as ViewGroup


class HomeFragments : Fragment() {


    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        val view = inflater?.inflate(R.layout.fragment_home, container, false)

        // recuperer le recyclerview

        val  horizontalRecyclerView = view.findViewById<RecyclerView>(R.id.horizontal_recycler_view)
        horizontalRecyclerView.adapter = Projectadapter()


        return view
    }

2 réponses

BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 

Hello,

Effectivement, cela ne s'écrit pas comme cela, mais plutôt

val horizontalRecyclerView = view.findViewById(R.id.horizontal_recycler_view)

Mais bon, quitte à faire du code propre (je vois que tu utilises Kotlin), laisse tomber les findViewById au profit du ViewBinding, beaucoup plus propre et plus conforme aux bonnes pratiques maintenant:

https://developer.android.com/topic/libraries/view-binding


0
Dorianopg Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   5
 

Bonjour, excusez moi pour cette réponse tardive mais pouvez-vous m'expliquer ce que cela changerait si j'utiliserai ViewBinding ?

0
BunoCS Messages postés 15952 Date d'inscription   Statut Modérateur Dernière intervention   3 918
 

Plus besoin de s'embêter avec les find... c'est automatique. Et c'est beaucoup plus lisible puisque l'objet en Kotlin aura le même nom que le composant dans le XML.

Autre raison: c'est maintenant la norme dans le développement d'app Android

0