使用ViewBinding后button按钮失效
今天学习《第一行代码》时使用ViewBinding代替findViewById(),发现代替以后button无法激活intent,从https://www.jianshu.com/p/86f780f3aabd 找到了问题所在
问题代码
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(tag,"onCreate")
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(R.layout.activity_main)
binding.startNormalActivity.setOnClickListener {
val intent = Intent(this, NormalActivity::class.java)
startActivity(intent)
}
binding.startDialogActivity.setOnClickListener {
val intent = Intent(this, DialogActivity::class.java)
startActivity(intent)
}
}
关键就是在setContentView(R.layout.activity_main)这行代码出现了问题
tips:这行代码是自动生成的
修改
需要改为在setContentView()前进行binding绑定
val binding = ActivityMainBinding.inflate(layoutInflater)
然后setContentView改为setContentView(binding.root)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Log.d(tag,"onCreate")
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
...
}

浙公网安备 33010602011771号