【问题标题】:change datepicker dialog current date - android java更改日期选择器对话框当前日期 - android java
【发布时间】:2017-06-13 13:25:45
【问题描述】:

我可以更改一天的突出显示(红色圆圈)。这是显示系统当前日期,但我的应用程序在不同的时区工作,所以我怎样才能取消突出显示这一天或将其更改为另一天。

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);
}

【问题讨论】:

标签: java android datepickerdialog


【解决方案1】:

您需要做的是在显示对话框之前使用应用程序的有效日期初始化对话框。此代码来自一个 android 应用程序。

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);

【讨论】:

  • 这只会更新选定的日期,而不是红色圈出的突出显示日期
猜你喜欢
  • 2014-03-23
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多