Reputation: 585
[Here is image for range slider] 1I am using method to get values from range sliders, but it is is not updating my textview on every change.
rangeSeek.addOnChangeListener { slider, value, fromUser ->
changeDateValueForText(slider.valueFrom.toInt(),slider.valueTo.toInt())
}
Upvotes: 8
Views: 10983
Reputation: 409
Hopefully this will solve your issue. Please check the below code snippet.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val rangeSlider: RangeSlider = findViewById(R.id.rangeSlider);
val textView: TextView = findViewById(R.id.textView);
val textView2: TextView = findViewById(R.id.textView2);
//you get current (values when user start dragging the silder, also the update view
rangeSlider.addOnSliderTouchListener(object : RangeSlider.OnSliderTouchListener{
override fun onStartTrackingTouch(slider: RangeSlider) {
val values = rangeSlider.values
//Those are the satrt and end values of sldier when user start dragging
Log.i("SliderPreviousValue From", values[0].toString())
Log.i("SliderPreviousValue To", values[1].toString())
}
override fun onStopTrackingTouch(slider: RangeSlider) {
val values = rangeSlider.values
//Those are the new updated values of sldier when user has finshed dragging
Log.i("SliderNewValue From", values[0].toString())
Log.i("SliderNewValue To", values[1].toString())
textView.setText("Start value: ${values[0]}, End value: ${values[1]}")
}
})
//If you only want the slider start and end value and don't care about the previous values
rangeSlider.addOnChangeListener { slider, value, fromUser ->
val values = rangeSlider.values
textView2.text = "Start value: ${values[0]}, End value: ${values[1]}";
}
Upvotes: 21