我正在使用 DatePickerDialog 并附带一些逻辑
逻辑就像使用if-else
语句
if(number == 1) // then add 1 day
else if (number == 2) // then add 3 days
要求:使用Spinner选择天数,使用DatePicker在Dialog中显示该特定日期
问题:问题是我在微调器中选择了第一项(在dtdob日期会增加1天),现在我选择了微调器第二项(必须在dtdob日期添加3天) )....但是当我点击DatePicker在DatePicker中显示相同的日期时(我在Spinner项目选择1的情况下得到)不是新的
例如dtdob
日期 2015年12月15日
案例1:First Spinner
项目已选中(获得 2015年12月16日) - 这是完全正确的
案例2:我选择Second Spinner
项目(仍然 2015年12月16日),而我期待 2015年12月18日
代码:
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID1:
// set date picker as current date
DatePickerDialog dpDialog1 = new DatePickerDialog(this, datePickerListener1, year1, month1, day1);
DatePicker datePicker1 = dpDialog1.getDatePicker();
Calendar c = Calendar.getInstance();//get the current day
c.setTime(dtdob); // this is the date I am getting from somewhere
if (number == 1) {
c.add(Calendar.DATE, 1);
} else if (number == 2) {
c.add(Calendar.DATE, 3);
} else if (number == 3) {
c.add(Calendar.DATE, 7);
} else {
c.add(Calendar.DATE, 1);
}
datePicker1.setMinDate(c.getTimeInMillis());
return dpDialog1;
}
return null;
}
部分:正在提取号码
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent,
View view, int position, long id) {
number = spinner1.getSelectedItemPosition();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
答案 0 :(得分:0)
您能否发布您定义号码的代码部分。您的日期增量代码似乎没问题。