RangeSeekBar内部实现SeekBarChangeListener时出现未解析引用错误
问题原因
你使用的监听器设置语法不符合该开源库的API定义,seekBarChangeListener不是可直接调用的方法,它是类属性,对应Java的setter方法setSeekBarChangeListener。你之前Activity实现接口的写法能正常运行,是因为你之前的代码里应该有调用rangeSeekBar.setSeekBarChangeListener(this)的逻辑,只是没有贴出这部分代码。
解决方法
你可以任选以下两种写法之一修正代码:
- 调用setter方法设置监听器
class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) // 调用set方法传入监听器实例 binding.rangeSeekBar.setSeekBarChangeListener(object : RangeSeekBar.SeekBarChangeListener { override fun onStartedSeeking() {} override fun onStoppedSeeking() {} override fun onValueChanged(minThumbValue: Int, maxThumbValue: Int) {} }) } }
- 使用Kotlin属性赋值语法设置
binding.rangeSeekBar.seekBarChangeListener = object : RangeSeekBar.SeekBarChangeListener { override fun onStartedSeeking() {} override fun onStoppedSeeking() {} override fun onValueChanged(minThumbValue: Int, maxThumbValue: Int) {} }
额外排查点
如果修改后仍然报错,请检查你的导包语句,确认RangeSeekBar的导入路径和你引用的开源库路径一致,没有导入同名的其他类。
内容的提问来源于stack exchange,提问作者Dim
相关产品推荐
相关产品推荐

