Bekzhan
Bekzhan

Reputation: 585

How to get value from range slider on every change in android studio?

[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

Answers (1)

sajalsd
sajalsd

Reputation: 409

Hopefully this will solve your issue. Please check the below code snippet.enter image description here

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

Related Questions