findViewById 参考未解决

findViewById reference unresolved

我有一个小应用程序,其中有一个片段 AchievementFragment,其中有几个 imageButton。我想这样做,当我点击其中一个时,屏幕上会出现吐司,但我只有 imageButton 本身有问题。我尝试遵循一些像这样的在线教程:https://www.geeksforgeeks.org/imagebutton-in-kotlin/,但是当我尝试使用

val imgbtn = findViewById<ImageButton>(R.id.imageBtn)

我收到未解决的 findViewById 引用错误。

您不能在片段中直接使用 findViewById,您必须将它与根视图一起使用,在您的 onCreateView 中,您将返回根视图。您的其他视图在根视图中。因此,如果你想访问根目录中的视图,你应该在返回根视图之前像这样使用

 override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    val root = inflater.inflate(R.layout.fragment_blank, container, false)

    val imgbtn = root.findViewById<ImageButton>(R.id.imageBtn)
    
    return root
}
val imgbtn = (activity as "activity name").findViewById<ImageButton>(R.id.imageBtn)

将“activity 姓名”替换为您的 activity。

使用视图绑定而不是 findViewById。 https://developer.android.com/topic/libraries/view-binding