kotlin Android Studio中未解析的引用

7xzttuei  于 2023-03-30  发布在  Kotlin
关注(0)|答案(1)|浏览(196)

为什么我在代码的这一部分不断得到“Unresolved reference:layout”消息(我一直在为RecyclerView项目创建自定义适配器,项目本身包含在game.xml文件中):

override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): GameViewHolder {
    val view = LayoutInflater.from(parent.context).inflate(R.layout.game, parent, false)
    return GameViewHolder(view)
}

更具体地说,www.example.com中的“布局”R.layout.game是红色的(没有下划线),当我将鼠标悬停在它上面时,我会看到前面提到的消息。
这部分中的“id”关键字也是如此:

inner class GameViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { 
    val gameWinner: TextView = itemView.findViewById(Build.VERSION_CODES.R.id.winner_textview)
    val highscore: TextView = itemView.findViewById(Build.VERSION_CODES.R.id.highscore)
}

我在这件事上已经坚持了一段时间,任何帮助都是欢迎的。提前感谢!
我认为这与Gradle有关,因为我以前也遇到过问题,但即使在它成功同步后,同样的问题仍然存在。

8i9zcol2

8i9zcol21#

未解析的参照:布局
这意味着什么R类不知道“布局”成员.你真的有任何文件夹称为“布局”在你的res文件夹?你可以检查它在项目结构窗口(Alt+1默认)或只需键入“R.”在android studio和检查它会提出什么.
这部分中的“id”关键字也是如此:
Build.VERSION_CODES.RR.id.winner_textview是两个不同的东西。
第一个是API版本代码R的常量Int值,即Android 11(更多信息:android dev sitehere
第二个是你的R-class,它引用了id-class,它保存了你的“.xml”文件中所有定义的id。所以我猜你想要的是这样的东西:

val gameWinner: TextView = itemView.findViewById(R.id.winner_textview)
val highscore: TextView = itemView.findViewById(R.id.highscore)

阅读更多关于R-class here的信息。

相关问题