Reputation: 521
binding.seekbarConstrast.setOnSeekBarChangeListener(object :
SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean){}
override fun onStartTrackingTouch(seekBar: SeekBar?) {}
override fun onStopTrackingTouch(seekBar: SeekBar?) {
mainViewModel.adjustConstrast(
ProcessUtils.seek2param(
seekBar!!.max, 0f, 4f, seekBar.progress
)
)
}
})
This code is in Android,I hate below code,too many seekbars make meaningless code extremely long, Can I use Kotlin or Java to simplify the implementation of listeners?Like Android animation adapter,only implementation what I want use.Thank you.
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean){}
override fun onStartTrackingTouch(seekBar: SeekBar?) {}
Upvotes: 3
Views: 514
Reputation: 15423
Create your own custom listener as per your requirement
abstract class OnSeekBarSimpleChangeListener : SeekBar.OnSeekBarChangeListener {
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
// Nothing
}
override fun onStartTrackingTouch(seekBar: SeekBar?) {
// Nothing
}
}
And then use
binding.seekbarConstrast.setOnSeekBarChangeListener(object : OnSeekBarSimpleChangeListener() {
override fun onStopTrackingTouch(seekBar: SeekBar?) {
mainViewModel.adjustConstrast(
ProcessUtils.seek2param(
seekBar!!.max, 0f, 4f, seekBar.progress
)
)
}
})
Upvotes: 6