如何使用搜索栏设置时间范围

时间:2016-04-26 15:19:26

标签: android android-seekbar

我偶然发现this library by Anothem。基本上它提供了类似于默认Android版本的SeekBar,但有两个拇指控件允许选择范围,还有一些其他附加功能。

目前seekbar可以选择numbers/digits之间的范围,但不能用于time系统12 hours系统中的实际12am-3pm范围选择。< / p>

我想要实现上述目标,但没有成功。

在查看了stackoverflow之后,我再次偶然发现similar issue,但似乎无法重用或实现我的情况。

同样地,github repo承诺解决问题,但在运行课程后,我根本看不到变化。

任何建议都将受到高度赞赏!

Here is the class to modify.

我是如何使用它的:

RangeSeekBar rangeSeekBar = (RangeSeekBar) findViewById(R.id.seekbar);
        rangeSeekBar.setRangeValues(15, 90);
        rangeSeekBar.setSelectedMinValue(20);
        rangeSeekBar.setSelectedMaxValue(88);

1 个答案:

答案 0 :(得分:3)

为什么要将范围值设置为15到90?如果您尝试描绘时间,则应将范围值设置为:

rangeSeekBar.setRangeValues(0,24 * SMALLEST_HOUR_FRACTION);

其中SMALLEST_HOUR_FRACTION是您可以选择的最小时间段(2每半小时选择一次,4每四分之一小时(15分钟),60每一分钟。

然后,要确定用户选择的时间,请使用:

int minHour = rangeSeekBar.getSelectedMinValue() / SMALLEST_HOUR_FRACTION;
int minMinute = SMALLEST_HOUR_FRACTION * (rangeSeekBar.getSelectedMinValue() % SMALLEST_HOUR_FRACTION);
int maxHour = rangeSeekBar.getSelectedMaxValue() / SMALLEST_HOUR_FRACTION;
int maxMinute = SMALLEST_HOUR_FRACTION * (rangeSeekBar.getSelectedMaxValue() % SMALLEST_HOUR_FRACTION);