使用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)
...
}
posted @   隔篁竹闻水声  阅读(106)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
历史上的今天:
2021-10-01 数字逻辑 第一章
点击右上角即可分享
微信分享提示