2017-07-17 6 views
0

Ich habe eine Listenansicht in meiner Android-App, in der ich Liste der Zeiten des Intervalls von 30 Minuten zeige. i am hard Codierung von Daten in die Listenansicht mit dieser FunktionUhrzeit nach 30 Minuten Intervall in Listenansicht

public void prepareTime() { 
    ListModel listModel = new ListModel("00:30 A.M"); 
    listModelsList.add(listModel); 

    listModel = new ListModel("01:00 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("01:30 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("02:00 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("02:30 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("03:00 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("03:30 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("04:00 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("04:30 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("05:00 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("05:30 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("06:00 A.M"); 
    listModelsList.add(listModel); 
    listModel = new ListModel("06:30 A.M"); 
    listModelsList.add(listModel); 
ListsAdapter listAdapter = new ListsAdapter(getApplicationContext(), listModelsList); 
    list.setAdapter(listAdapter); 
} 

aber ich mag Daten in die Liste mit Intervall mit mobiler Zeitzone von 30 Minuten hinzuzufügen. Wie kann ich das tun?

+0

Wie wäre es mit 'TimerTask' –

+0

Ich möchte Daten in ListView auffüllen, wenn die Anwendungen gestartet werden. Timer Task wird ein Intervall von 30 Minuten dauern, um die Daten zu laden –

+0

Daten zuerst laden und dann den Timer starten? –

Antwort

0

Nach der Suche bekam ich die Antwort auf meine Frage.

private void displayTimeSlots() { 

    String timeValue = "T00:00:4.896+05:30"; 
    SimpleDateFormat sdf = new SimpleDateFormat("'T'hh:mm:ss.SSS"); 
    try { 
     Calendar startCalendar = Calendar.getInstance(); 
     startCalendar.setTime(sdf.parse(timeValue)); 

     if (startCalendar.get(Calendar.MINUTE) < 30) { 
      startCalendar.set(Calendar.MINUTE, 30); 
     } else { 
      startCalendar.add(Calendar.MINUTE, 30); // overstep hour and clear minutes 
      startCalendar.clear(Calendar.MINUTE); 
     } 

     Calendar endCalendar = Calendar.getInstance(); 
     endCalendar.setTime(startCalendar.getTime()); 

     // if you want dates for whole next day, uncomment next line 
     //endCalendar.add(Calendar.DAY_OF_YEAR, 1); 
     endCalendar.add(Calendar.HOUR_OF_DAY, 24 - startCalendar.get(Calendar.HOUR_OF_DAY)); 

     endCalendar.clear(Calendar.MINUTE); 
     endCalendar.clear(Calendar.SECOND); 
     endCalendar.clear(Calendar.MILLISECOND); 

     SimpleDateFormat slotTime = new SimpleDateFormat("hh:mm a"); 
     while (endCalendar.after(startCalendar)) { 

      startCalendar.add(Calendar.MINUTE, 30); 
      String slotEndTime = slotTime.format(startCalendar.getTime()); 

      ListModel listModel = new ListModel(slotEndTime); 
      listModelsList.add(listModel); 

      ListsAdapter listAdapter = new ListsAdapter(getApplicationContext(), listModelsList); 
      list.setAdapter(listAdapter); 
      Log.e("DATE", slotEndTime); 
     } 

    } catch (ParseException e) { 
     // date in wrong format 
    } 
} 
Verwandte Themen