2016-04-26 27 views
2

我偶然發現了this library by Anothem。基本上它提供了一個SeekBar類似於默認的Android,但有兩個拇指控件允許選擇一個範圍,以及其他一些額外功能。如何使用seekbar設置時間範圍

作爲此刻的seekbar可以numbers/digits之間選擇的範圍,但不能在12 hours系統等12am-3pm用於實際time範圍選擇。

我努力實現上述目標,但沒有成功。

在通過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);

回答

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); 
+0

感謝您的答覆!第一部分我同意,但我確定用戶選擇的時間,我一直被告知「操作員/不能應用於T」的部分,請參閱上面的pastebin上的第586行。 –

+0

@SteveKamau我假設你正在嘗試使用類型T來表示一個時間值。爲什麼不明確使用float或double並根據該值確定時間?然後,您可以添加使用上述計算的方法,例如getSelectedMinTime()和getSelectedMaxTime() – AgileNinja

+0

Aaahh令人驚歎!現在我明白了,那很棒! –

相關問題