我该如何解决"Unresolved reference : ListView".科特林



我在activity_main.xml中创建了一个列表视图,并将其id命名为"Listem";。然而,当我切换到MainActivity.kt并使用我的";我的列表"文件,我得到一个";未解析的引用:Listem错误";。你认为的问题来源于哪里

在此处输入图像描述

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<ListView
android:id="@+id/Listem"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="16dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>

主要活动.kt:

package com.example.burcson
import android.os.Bundle
import android.widget.ArrayAdapter
import androidx.appcompat.app.AppCompatActivity
class MainActivity : AppCompatActivity() {
var burclar = arrayOf("Koç","Boğa","İkizler","Yengeç","Aslan","Başak","Terazi","Akrep","Yay","Oğlak","Kova","Balık")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
var burclaradapter = ArrayAdapter(this,android.R.layout.simple_list_item_1,burclar)
Listem.adapter=burclaradapter
}
}

您需要以某种方式检索视图。

最简单的方法:

val listem = findViewById<ListView>(R.id.Listem)

或者,现代方法是使用ViewBinding库:https://developer.android.com/topic/libraries/view-binding

在其他情况下使用

Listem.adapter=burclaradapter

您需要将Kotlin合成添加到您的应用程序级build.gradle

apply plugin: `kotlin-android-extensions`

但是Kotlin synthetics已经被弃用,所以在应用程序级别的build.gradle中使用viewBinding

android {
...
buildFeatures {
viewBinding true
}
}

我希望这能有所帮助。从这里阅读更多

最新更新