Search code examples
javaandroidandroid-layoutandroid-recents

time rangeseekbar in android


I am using org.florescu.android.rangeseekbar.RangeSeekBar for time selection as I need to filter the result between selected time. I was fortunate enough to get this thing working for price but now I am stuck on time selection as it accepts only int, double and float values. but time is in string format I tried https://android-arsenal.com/details/1/771 which worked. and gave me below result:-

enter image description here

But it fails for minute selection(As it only provides hours) and also I need to do something like:- enter image description here

Please help me out


Solution

  • int SMALLEST_HOUR_FRACTION = 60;

    seekbar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener() { @Override public void onRangeSeekBarValuesChanged(RangeSeekBar bar, Object minValue, Object maxValue) { int minHour = seekbar.getSelectedMinValue().intValue() / SMALLEST_HOUR_FRACTION; int minMinute = (seekbar.getSelectedMinValue().intValue() % SMALLEST_HOUR_FRACTION); int maxHour = seekbar.getSelectedMaxValue().intValue() / SMALLEST_HOUR_FRACTION; int maxMinute = (seekbar.getSelectedMaxValue().intValue() % SMALLEST_HOUR_FRACTION);

                String dep_min_time = (String.valueOf(minHour)+ ":" + String.valueOf(minMinute));
                String dep_max_time = (String.valueOf(maxHour)+ ":" + String.valueOf(maxMinute));
    
                dep_min_time1_txt.setText(DateUtil.TimeFormat(dep_min_time));
                dep_max_time1_txt.setText(DateUtil.TimeFormat(dep_max_time));
    
    
    
            }
        });