我对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
都被读取,并告诉我“未解决的引用”。
我已经在activity_main.xml中将f1 ... f8定义为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?
谢谢!
答案 0 :(得分:1)
请使用以下合成材料替换您的进口行:
import kotlinx.android.synthetic.main.activity_main.view.*
不过,请注意,即将弃用Android的kotlinx合成物:https://youtrack.jetbrains.com/issue/KT-42121。不再推荐使用它们,因此值得一试View Binding