Kotlin中onClick报错‘onClick overrides nothing’如何解决?
解决“onClick overrides nothing”错误
这个错误的核心原因是你的类没有实现View.OnClickListener接口,导致override关键字找不到可重写的方法。以下是两种解决思路:
方法一:实现接口并绑定监听器
- 修改类定义,让它实现
View.OnClickListener接口class YourActivity : AppCompatActivity(), View.OnClickListener { // 类内部代码 } - 在
onCreate方法中给需要点击的控件设置监听器override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityYourBinding.inflate(layoutInflater) setContentView(binding.root) // 绑定点击监听器到当前类 binding.option1Text.setOnClickListener(this) binding.option2Text.setOnClickListener(this) binding.option3Text.setOnClickListener(this) binding.option4Text.setOnClickListener(this) } - 保留你原有的
onClick方法即可,此时override关键字就能找到对应的接口方法,错误会自动消失。
方法二:使用Lambda直接绑定点击事件
如果不想实现接口,可以给每个控件单独设置Lambda点击逻辑,无需写override的onClick方法:
binding.option1Text.setOnClickListener { selectedOptionStyle(binding.option1Text, 1) } binding.option2Text.setOnClickListener { selectedOptionStyle(binding.option2Text, 2) } binding.option3Text.setOnClickListener { selectedOptionStyle(binding.option3Text, 3) } binding.option4Text.setOnClickListener { selectedOptionStyle(binding.option4Text, 4) }
内容的提问来源于stack exchange,提问作者skylark
相关产品推荐
相关产品推荐

