使用Fragments时无法调用findViewById()

在学习 Kotlin 时,我遇到了片段会话的问题。

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    Log.d("life_cycle", "F onViewCreated")

    super.onViewCreated(view, savedInstanceState)

    val pass: Button = findViewById(R.id.pass)

    pass.setOnClickListener {
        dataPassListener.onDataPass("Good bye")
    }
}

我想写val pass: Button = findViewById(R.id.pass),但我不能用findViewById()

我认为问题在于androidx.appcompat.app.AppCompatActivity不是进口的。

回答

根据您所写的内容,此片段来自您的一个类,它扩展了Fragment该类的某些变体。

如果是这种情况,您想要做的是:

val pass: Button = view.findViewById(R.id.pass)

这里的区别在于,它findViewById()是针对view生命周期回调中传递的实例调用的。

(这假设R.id.pass资源是在由此 Fragment 膨胀的视图中定义的)。


以上是使用Fragments时无法调用findViewById()的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>