2017-09-14 94 views
0

我想把2個drawable放在我的sek欄中。首先是最短時間,第二次可繪製將顯示用戶選擇的最長時間。爲此,我正在使用THIS LIBRARY.但沒有運氣。我怎樣才能得到我想要的結果?我所做的就是在這裏。如何在範圍尋找欄中顯示時間格式?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Setup the new range seek bar 
    RangeSeekBar<Integer> rangeSeekBar = new RangeSeekBar<>(this); 
    // Set the range 
    rangeSeekBar.setRangeValues(15, 90); 
    rangeSeekBar.setSelectedMinValue(20); 
    rangeSeekBar.setSelectedMaxValue(88); 

    // Add to layout 
    FrameLayout layout = (FrameLayout) findViewById(R.id.seekbar_placeholder); 
    layout.addView(rangeSeekBar); 

    // Seek bar for which we will set text color in code 
    RangeSeekBar rangeSeekBarTextColorWithCode = (RangeSeekBar) findViewById(R.id.rangeSeekBarTextColorWithCode); 
    rangeSeekBarTextColorWithCode.setTextAboveThumbsColorResource(android.R.color.holo_blue_bright); 


    rangeSeekBar.setOnRangeSeekBarChangeListener(new RangeSeekBar.OnRangeSeekBarChangeListener<Integer>() { 
     @Override 
     public void onRangeSeekBarValuesChanged(RangeSeekBar<Integer> bar, Integer minValue, Integer maxValue) { 
      int hours = minValue/4; // it will return hours. 
      int minutes = (minValue % 4) * 15; 
      Toast.makeText(getApplicationContext(), hours + " Hours - " + hours + ":" + minutes, Toast.LENGTH_SHORT).show(); 

     } 
    }); 

} 
+0

怎麼問起是誰做出的庫的人? xD –

+0

爲什麼不使用時間選擇器,而不是編寫一些不可靠的邏輯/庫? https://material.io/guidelines/components/pickers.html –

+0

其我的要求先生 –

回答

1

要獲得理想的結果,您必須將最短時間和最長時間轉換爲分鐘。

String start[] = "6:00".split(":"); 
int min = Integer.parseInt(start[0]) * 60 + Integer.parseInt(start[1]); 
String end[] = "23:49".split(":"); 
int max = Integer.parseInt(end[0]) * 60 + Integer.parseInt(end[1]); 

rangeSeekBar.setSelectedMinValue(min); 
rangeSeekBar.setSelectedMaxValue(max); 

現在

onRangeSeekBarValuesChanged(RangeSeekBar<Integer> bar, Integer minValue, Integer maxValue) 
{ 
int minHour=minValu/60; //since both are ints, you get an int 
int minMinute=minValu % 60; 

int maxHour=maxValu/60; //since both are ints, you get an int 
int maxMinute= maxValu % 60 ; 
} 
+0

謝謝...但讓我知道什麼是最小(...)和最大(...) –

+0

分鐘和最大值是兩個'int'變量。括號內的時間僅供參考。更新的回答 –

+0

哦,git吧。假設我通過了兩個值,分別是早上6點到晚上11點59分,最低到最高點,..我怎樣才能轉換這個? –

相關問題