java - Android DatePicker 对话框,日期应该来自明天

标签 java android

 Calendar calender = Calendar.getInstance();
    final CustomDatePickerDialog pickerDialog = new CustomDatePickerDialog(LabCheckOutActivity.this,
    myDateListener, calender.get(Calendar.YEAR), calender.get(Calendar.MONTH),
    calender.get(Calendar.DAY_OF_MONTH)+1);
    pickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()-1000);
    pickerDialog.show();

通过使用此代码,对话框中的日期指向明天,但用户也可以选择今天的日期。我希望用户可以选择明天而不是今天的日期。

公共(public)类 CustomDatePickerDialog 扩展 DatePickerDialog {

int maxYear;
int maxMonth;
int maxDay;

public CustomDatePickerDialog(Context context, OnDateSetListener callBack, int year, int monthOfYear, int dayOfMonth) {
    super(context, callBack, year, monthOfYear, dayOfMonth);
}

public void setMaxDate(long maxDate) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        getDatePicker().setMaxDate(System.currentTimeMillis());
    } else {
        final Calendar c = Calendar.getInstance();
        c.setTimeInMillis(maxDate);
        maxYear = c.get(Calendar.YEAR);
        maxMonth = c.get(Calendar.MONTH);
        maxDay = c.get(Calendar.DAY_OF_MONTH);
    }
}

@Override
public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        super.onDateChanged(view, year, monthOfYear, dayOfMonth);
    } else {
        if (year > maxYear)
            view.updateDate(maxYear, maxMonth, maxDay);

        if (monthOfYear > maxMonth && year == maxYear)
            view.updateDate(maxYear, maxMonth, maxDay);

        if (dayOfMonth > maxDay && year == maxYear && monthOfYear == maxMonth)
            view.updateDate(maxYear, maxMonth, maxDay);
    }
}

}

最佳答案

使用

pickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()+24*60*60*1000);//where 24*60*60*1000 represents the total timestamp for one day

而不是

  pickerDialog.getDatePicker().setMinDate(System.currentTimeMillis()-1000);

关于java - Android DatePicker 对话框,日期应该来自明天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43134925/

相关文章:

java - 如何格式化java日期

java - 并行运行 junit 参数化测试(而不是类)

java - 如何让Java Swing应用程序显示Compiz Mouse Plugin的鼠标光标效果(Ubuntu)

java - Android响应本地http请求

android生成随机唯一的颜色代码

java - Java 中特定字符串的正则表达式

java - 新手努力从数组列表中删除对象

java - 导航栏按钮在从服务绘制的布局上没有响应

java - 使用opencv java检测图像中文档的边界

android - 具有未烘焙纹理的 3D 对象在 metaio sdk 中无法正确呈现