
基类中的处理
abstract class BaseActivity<VB: ViewBinding> : AppCompatActivity() {
private var _binding: VB? = null
protected val binding get() = _binding!!
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
_binding = inflate(layoutInflater)
setContentView(binding.root)
}
protected abstract fun getVBInflate(): (LayoutInflater) -> VB
override fun onDestroy() {
super.onDestroy()
_binding = null
}
}
实现类中的使用
class MainActivity : BaseActivity<ActivityMainBinding>() {
override fun getVBInflate(): (LayoutInflater) -> ActivityMainBinding {
return ActivityMainBinding::inflate
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding.myButton.setOnClickListener { }
}
}