2017-06-13 1 views
1

Kann ich den tag highlight (eingekreist in rot) ändern. Dies zeigt den aktuellen Tag des Systems an, aber meine App funktioniert in einer anderen Zeitzone, also wie kann ich den Tag deaktivieren oder auf einen anderen Tag ändern.change datepicker dialog aktuelles datum - android java

enter image description here

private void setDateTimeField() { 
    billDate.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      billDateDialog.show(); 
      billDateDialog.updateDate(billDateCal.get(Calendar.YEAR), billDateCal.get(Calendar.MONTH), billDateCal.get(Calendar.DAY_OF_MONTH)); 
     } 
    }); 


    billDateDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() { 

     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) { 

      // Bills need to be set to 00.00 hours. DST needs to be ignored because changing to other timezones with no DST will cause problems with days changing to the day before. 
      long correctedTime = new DayLightSavings(year, monthOfYear, dayOfMonth, timeZone).getCorrectedTime(); 
      billDateCal.setTimeInMillis(correctedTime); 
      billDate.setText(dateFormatter.format(billDateCal.getTimeInMillis())); 
     } 

    },billDateCal.get(Calendar.YEAR), billDateCal.get(Calendar.MONTH), billDateCal.get(Calendar.DAY_OF_MONTH)); 

    // Do not allow selection of <= today's date. 
    // TODO Dialogue needs to be based on timezone selection. 
    long oneDay = TimeUnit.MILLISECONDS.convert(1, TimeUnit.DAYS); 

    long oldRawOffset = TimeZone.getDefault().getRawOffset(); 
    long newRawOffset = timeZone.getRawOffset(); 
    long rawOffset = oldRawOffset - newRawOffset; 
    // TODO fix dialogue to display the correct timezone current day. 
    billDateDialog.getDatePicker().setMinDate(Calendar.getInstance().getTimeInMillis() + oneDay - rawOffset); 
} 
+0

Was ist die aktuelle gute App-Zeit? – jeorfevre

+0

Dies könnte helfen https://stackoverflow.com/questions/26310750/how-to-set-a-spezifische-date-in-date-picker-in-android –

+0

die gute App-Zeit ist die 14. – Mazz

Antwort

0

Was müssen Sie tun ist, bevor Sie Ihren Dialog zeigt den Dialog mit der App gut Datum initialisiert. Dieser Code kommt von einer Android-App.

DatePicker datePicker = (DatePicker) billDateDialog.getDatePicker(); 
TimePicker timePicker = (TimePicker) findViewById(R.id.timepicker); 

DateTime apptime = DateTime.now() ; //From your app, db or other 
int y = apptime.getYear() ; 
int m = apptime.getMonthOfYear() - 1;  // Need to subtract 1 here. 
int d  = apptime.getDayOfMonth(); 
int h = apptime.getHourOfDay(); 
int min = apptime.getMinuteOfHour(); 

//setters 
datePicker.updateDate(y, m, d);    
timePicker.setCurrentHour(h);      
timePicker.setCurrentMinute(min); 
+0

Dies aktualisiert nur das ausgewählte Datum, nicht das hervorgehobene Datum in rot eingekreist – Mazz