2017-06-13 10 views
1

日のハイライトを変更することはできますか?これは今日のシステムを表示していますが、私のアプリは別のタイムゾーンで動作しますので、その日の強調表示を解除するか、別の日に変更するにはどうすればいいですか?あなたがする必要がどのようなdatepickerダイアログの現在の日付を変更 - 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

現在の良いアプリタイムとは何ですか? – jeorfevre

+0

これは役に立ちます https://stackoverflow.com/questions/26310750/how-to-set-a-specific-date-in-date-picker-in-android –

+0

良いアプリの時間は14日です – Mazz

答えて

0

アプリの良い日との対話を初期化し、あなたのダイアログを表示する前です。このコードはアンドロイドアプリから来ています。

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

これは、赤で囲まれた強調表示された日付ではなく、選択した日付のみを更新します – Mazz

関連する問題