0
votes

Android Kotlin recyclerview à l'intérieur du fragment est null

Je ne peux pas obtenir mon recyclage à l'intérieur de mon fragment de travailler. J'ai essayé de déplacer l'adaptateur RECYCLERVIEW code> et Layout code> sur OnviewCreated code> mais cela n'a pas fonctionné non plus.

Quelqu'un a-t-il une idée à quel problème pourrait être? P>

Activité principale forte> p>

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.johanvanderlindenapp"
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    //Navigation
    implementation "androidx.navigation:navigation-fragment-ktx:2.1.0"
    implementation "androidx.navigation:navigation-ui-ktx:2.1.0"

    // Material widgets
    implementation "com.google.android.material:material:1.0.0"

    // ViewModel and LiveData
    def lifecycle_version = "2.1.0"
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"

    implementation 'androidx.recyclerview:recyclerview:1.1.0'
}


2 commentaires

Loadfragmentment (Newsfragmentment ()) // Affiche le fragment de nouvelles par défaut <- Vérifiez n ° 9 dans proAnandroidev.com/... ?


@Épicpandaforce Pas la source de mon erreur, mais toujours très agréable à savoir.


3 Réponses :


0
votes

Essayez ceci xxx


7 commentaires

Je ne peux pas exécuter la section lecteur . Android Studio donne un jetons inattendus erreur.


Pouvez-vous essayer ceci -> Val NewsAnaPher = NewAnApter (Newsitems)


La liste a-t-elle un objet?


Si j'ajoute des choses à la liste et que vous notifiez à l'adaptateur, je reçois toujours la même erreur.


Avez-vous supprimé la soumission? Pouvez-vous sûr que la liste a un objet et pouvez-vous vérifier le titulaire de la vue?


J'ai supprimé SoumisList . La liste a des objets, mais le point de vue n'est pas tiré.


Laissez-nous Continuez cette discussion en chat .



0
votes

Vous ne pouvez pas utiliser la balise pour afficher les éléments de votre liste. Votre classe de visualisation classe s'occupe de l'instanciation des articles de votre liste pour vous. Il suffit de supprimer la balise Inclure la balise dans votre fragment_news.xml : xxx

aussi, assurez-vous que votre newsitems est pas vide. Sinon, cela vous montrera une vue vide. Si vous souhaitez ajouter des éléments à votre Newsitems , n'oubliez pas d'appeler notifydatastetchanged () dans votre adaptateur pour refléter les modifications.


3 commentaires

J'ai supprimé la réponse de @ Enderkoca. Le problème persiste encore.


@BVDL Comment remplissez-vous la vue Recycler?


Ajout d'objets à la liste list Liste et appelez notifydatastetchanged sur le NewsAnapter



0
votes

Utilisation vindviewByID code> au lieu de synthétique code> s'est avéré pour résoudre le problème.

Mon fragment de nouvelles ressemble maintenant à ceci: p>

class NewsFragment : Fragment() {

    private val newsItems = arrayListOf<NewsItem>()
    private val newsAdapter = NewsAdapter(newsItems)

    override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        val view = inflater.inflate(R.layout.fragment_news, container, false)
        val rvNewsItems = view.findViewById(R.id.rvNewsItems) as RecyclerView

        rvNewsItems.layoutManager = LinearLayoutManager(context)
        rvNewsItems.adapter = newsAdapter

        return view
    }

}


0 commentaires