Kotlin合成属性不是神奇的,并且以非常简单的方式工作.当您访问时btn_K
,它需要getView().findViewById(R.id.btn_K)
.
问题是您过早访问它.getView()
返回null
在onCreateView
.尝试在onViewCreated
方法中执行此操作:
override fun onViewCreated(view: View, savedInstanceState: Bundle?) { btn_K.setOnClickListener { Log.d(TAG, "onViewCreated(): hello world"); } }
你btn_K
这么快就调用它,因为那时它返回一个null并且给你Null Pointer Exception.
您可以通过此合成插件在Fragment生命周期onActivityCreated()
之后调用的方法中使用这些视图onCreateView()
.
onActivityCreated() { super.onActivityCreated(savedInstanceState) btn_K.setOnClickListener{} }