我有两个编辑文本框,一个用于签入,另一个用于签出日期。
我已经采取了两个DatePickerDialog,当您单击编辑文本框时将打开,这是很好的工作,但我需要它的设置,所以当一个日期被选中在编辑文本框,然后签出数据应从第二天开始签入日期。
也就是说,您的退房日期不能早于您的入住日期。
my current code:
private void setDateTimeField() {
checkInEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus){
fromDatePickerDialog.show();
}
}
});
checkOutEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
toDatePickerDialog.show();
}
}
});
Calendar newCalendar = Calendar.getInstance();
fromDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
checkInEdit.setText(dayOfMonth + "-" + monthOfYear + "-" + year);
newDate.add(Calendar.DATE, 1);
toDatePickerDialog.getDatePicker().setMinDate(newDate.get(Calendar.MILLISECOND));
}
},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
toDatePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar newDate = Calendar.getInstance();
newDate.set(year, monthOfYear, dayOfMonth);
checkOutEdit.setText(dayOfMonth + "-" + monthOfYear + "-" + year);
}
},newCalendar.get(Calendar.YEAR), newCalendar.get(Calendar.MONTH), newCalendar.get(Calendar.DAY_OF_MONTH));
fromDatePickerDialog.getDatePicker().setMinDate(newCalendar.get(Calendar.MILLISECOND));
toDatePickerDialog.getDatePicker().setMinDate(newCalendar.get(Calendar.MILLISECOND));
}我加了一行
toDatePickerDialog.getDatePicker().setMinDate(newDate.get(Calendar.MILLISECOND));然而,在fromDatePickerDialog onDateSet方法中,这似乎不太适用,即当我打开toDatePickerDialog时,它的日期仍然设置为今天。
发布于 2016-07-02 09:46:25
我还没有测试过,但是如果它有效,请尝试下面的代码,
首先使用一个全局变量作为from date,并使用calander数据类型,如下所示:
Calendar fromDate;现在从日期开始,选择在那里设置此fromDate,所选日期如下所示
// In your fromDatePickerDialog at onDateSet method
fromDate = newDate;现在更改您的以下代码,以便时间编辑文本的焦点列表器
checkOutEdit.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if(fromDate != null)
toDatePickerDialog.setMinDate(fromDate.getTime());
toDatePickerDialog.show();
}
}
});https://stackoverflow.com/questions/38158623
复制相似问题