2016-05-06 8 views
0

Ich benutze Ermodo Range Bar, und die Tatsache, dass ich einen Minimalwert und einen Maximalwert in Stunden und Minuten angezeigt werden muß ... Das ist unter:HH: MM im Bereich Bar

enter image description here

public class FilterActivity extends Activity { 
private RangeBar rangebar; 
final int SMALLEST_HOUR_FRACTION = 1; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 
setContentView(R.layout.filter_layout); 

final TextView mDepartMin = (TextView)findViewById(R.id.tvDepartMin); 
final TextView mDepartMax = (TextView)findViewById(R.id.tvDepartMax); 
rangebar = (RangeBar) findViewById(R.id.rangebar1); 
rangebar.setTickCount(25 * SMALLEST_HOUR_FRACTION); 
rangebar.setTickHeight(0); 
rangebar.setThumbRadius(8); 
rangebar.setConnectingLineWeight(3); 

mDepartMin.setText("" + (rangebar.getLeftIndex()/SMALLEST_HOUR_FRACTION) + ":" + SMALLEST_HOUR_FRACTION * (rangebar.getLeftIndex() % SMALLEST_HOUR_FRACTION)); 
mDepartMax.setText("" + (rangebar.getRightIndex()/SMALLEST_HOUR_FRACTION) + ":" + SMALLEST_HOUR_FRACTION * (rangebar.getRightIndex() % SMALLEST_HOUR_FRACTION)); 

rangebar.setOnRangeBarChangeListener(new RangeBar.OnRangeBarChangeListener() { 
    @Override 
    public void onIndexChangeListener(RangeBar rangeBar, int leftThumbIndex, int rightThumbIndex) { 
     int minHour = leftThumbIndex/SMALLEST_HOUR_FRACTION; 
     int minMinute = SMALLEST_HOUR_FRACTION * (leftThumbIndex % SMALLEST_HOUR_FRACTION); 
     int maxHour = rightThumbIndex/SMALLEST_HOUR_FRACTION; 
     int maxMinute = SMALLEST_HOUR_FRACTION * (rightThumbIndex % SMALLEST_HOUR_FRACTION); 
     mDepartMin.setText(minHour + ":" + minMinute); 
     mDepartMax.setText(maxHour + ":" + maxMinute); 
    } 
}); 
} 
} 

Jetzt sieht es wie folgt aus:

enter image description here

denke ich, Datum oder Kalender-Klasse helfen kann, aber wie kann ich sie nutzen?

Ich brauche es als HH angezeigt werden: MM statt H: M

+0

lesen 'android.text.format.DateUtils' Dokumente – pskink

Antwort

1

DecimalFormat Verwenden Sie erreichen können.

DecimalFormat deciFormat= new DecimalFormat("00"); 
mDepartMin.setText(deciFormat.format(minHour) + ":" + deciFormat.format(minMinute)); 

OR Verwendung Kalender

mDepartMin.setText(getFormattedDate(minHour,minMinute)); 

Anruf Diese Methode unter

public static String getFormattedDate(int hour, int minute) { 
    Calendar cale = Calendar.getInstance(); 
    cale.set(Calendar.HOUR_OF_DAY, hour); 
    cale.set(Calendar.MINUTE, minute); 
    SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm"); 
    return dateFormat.format(cale.getTime()); 
} 

happyCoding;

+0

Das ist nicht der richtige Weg, um es zu tun, müssen Sie Kalender oder Datumsklasse verwenden. –

+0

@KakshilShah hast du seinen Code gesehen .. er benutzt nicht 'Calendar' oder' Date' Instanz .. und die Hauptsache ist die Berechnung von 'minHours',' minMiute' etc ... – Bharatesh

+0

Ja, und er sollte zwei verwenden Daten (Haben Sie gerade Zeit) und verwenden Sie das, um auf min und max zu zeigen. –