首页 > 解决方案 > Android Studio 在 MainActivity.kt 中找不到 TextView 引用(来自设计)

问题描述

我对 Android Studio 完全陌生,在我遵循的教程中有些东西对我不起作用。

package com.example.ticktacktoe


import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val allFields = arrayOf(f0, f1, f2, f3, f4, f5, f6, f7, f8)

    }
}

f1..f8并且kotlinx都已阅读,它告诉我“未解决的参考”。

我已将 f1...f8 定义为 activity_main.xml 中 textViews 的 id

f0 定义示例:

<TextView
                android:id="@+id/f0"
                android:layout_width="wrap_content"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="#FFFFFF"
                android:fontFamily="monospace"
                android:gravity="center"
                android:textAppearance="@style/TextAppearance.AppCompat.Large" />

我该如何解决这个问题,以便我可以在我的代码中从我的设计中引用 m textViews?

谢谢!

标签: androidandroid-studiokotlin

解决方案


请将您的导入线替换为以下合成线:

import kotlinx.android.synthetic.main.activity_main.view.*

不过,请注意,用于 Android 的 kotlinx 合成器即将被弃用:https ://youtrack.jetbrains.com/issue/KT-42121 。它们不再是推荐的做法,因此可能值得查看 View Binding


推荐阅读