为什么我在代码的这一部分不断得到“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有关,因为我以前也遇到过问题,但即使在它成功同步后,同样的问题仍然存在。
1条答案
按热度按时间8i9zcol21#
未解析的参照:布局
这意味着什么R类不知道“布局”成员.你真的有任何文件夹称为“布局”在你的res文件夹?你可以检查它在项目结构窗口(Alt+1默认)或只需键入“R.”在android studio和检查它会提出什么.
这部分中的“id”关键字也是如此:
Build.VERSION_CODES.R
和R.id.winner_textview
是两个不同的东西。第一个是API版本代码R的常量Int值,即Android 11(更多信息:android dev site和here)
第二个是你的R-class,它引用了id-class,它保存了你的“.xml”文件中所有定义的id。所以我猜你想要的是这样的东西:
阅读更多关于R-class here的信息。