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
我有一个小应用程序,其中有一个片段 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