【发布时间】:2018-04-08 14:40:54
【问题描述】:
我有两个日期选择器对话框,我想根据两个对话框选择器的选择更改日期并设置最大值和最小值。 如果我选择“开始日期”,结束日期应以“开始日期”选定值开始,如果我选择“结束日期”第一个“开始日期”最大日期应“结束日期”选定值。
private DatePickerDialog datePickerOne;
private DatePickerDialog datePickeTwo;
private void MyListener() {
final Calendar calendarMain = Calendar.getInstance();
Year = calendarMain.get(Calendar.YEAR);
Month = calendarMain.get(Calendar.MONTH);
Day = calendarMain.get(Calendar.DAY_OF_MONTH);
datePickerOne = new DatePickerDialog(activity, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Year = year;
Month = monthOfYear;
Day = dayOfMonth;
StringBuilder selectedDateFrom = new StringBuilder().append(dayOfMonth).append("-").append(monthOfYear + 1).append("-").append(year);
textDateStart.setText(selectedDateFrom);
textDateStart.setTextColor(android.graphics.Color.BLACK);
Calendar c2 = Calendar.getInstance();
int yearResp=c2.get(Calendar.YEAR);
int monthResp=c2.get(Calendar.MONTH);
int dayResp=c2.get(Calendar.DAY_OF_MONTH);
datePickerTwo.getDatePicker().setMinDate(c2.getTime().getTime());
datePickerTwo.updateDate(dayResp, monthResp,yearResp);
datePickerTwo.getDatePicker().setMaxDate(new Date().getTime());
}
}, Year, Month, Day);
textDateStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datePickerOne.show();
}
});
datePickerTwo = new DatePickerDialog(activity, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Year = year;
Month = monthOfYear;
Day = dayOfMonth;
StringBuilder selectedDateTO = new StringBuilder().append(dayOfMonth).append("-").append(monthOfYear + 1).append("-").append(year);
textDateEnd.setText(selectedDateTO);
textDateEnd.setTextColor(android.graphics.Color.BLACK);
Calendar c3 = Calendar.getInstance();
int yearResp=c3.get(Calendar.YEAR);
int monthResp=c3.get(Calendar.MONTH);
int dayResp=c3.get(Calendar.DAY_OF_MONTH);
datePickerOne.getDatePicker().setMaxDate(c3.getTime().getTime());
datePickerOne.updateDate(dayResp, monthResp,yearResp);
datePickerOne.getDatePicker().setMinDate(new Date().getTime());
}
}, Year, Month, Day);
textDateEnd.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
datePickerTwo.show();
}
});
现在只有初始时间我可以更改值,下次不工作。这里的 datepicker 对话框是 datePickerOne 和 datePickerTwo。 textDateStart 和 textDateEnd 是文本视图。
【问题讨论】:
-
谁能说没有自定义日期选择器对话框如何在我的代码中实现我的要求
标签: android date android-fragments datepicker calendar