在我的应用程序中,我必须将日期选择器作为日期和日期。我正在使用onCreateDialog()方法。所以我第一次从日期选择器中选择日期并将它们放在编辑文本中。然后,当我再次从日期选择器中选择日期时,在日期选择器中它显示我已经选择的日期。但是如果我在同一个屏幕(活动)中移动到其他搜索并尝试从日期选择器中选择日期,则日期选择器仍然显示上一个日期。不是现在的日期。
protected Dialog onCreateDialog(int id) {
final Calendar c = Calendar.getInstance();
switch (id) {
case DATE_DIALOG_ID1:
return new DatePickerDialog(this, mDateSetListener, c.get(Calendar.YEAR),
c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
case DATE_DIALOG_ID2:
return new DatePickerDialog(this, mDateSetListener2, c.get(Calendar.YEAR),
c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH));
}
return null;
}
答案 0 :(得分:1)
可能您可以尝试再次清楚地写出您的问题,但是根据我对您的问题的理解,您可能希望查看您的onDateChanged()回调方法。我假设你在这个onDateChanged()中有一个updateDialog()方法,你可能想检查错误的方法。
我想你看过这个链接,他们展示了如何使用日期选择器http://developer.android.com/resources/tutorials/views/hello-datepicker.html
祝你好运对于第二个问题,您询问了来自和迄今为止的混合对话
根据你所说的,我认为有类似
这样的小错误1)使用R.id.datepicker2代替R.id.datepicker1
或
2)在onDateChangedListener()中混淆了。我确信有更好的方法可以做到这一点,但请尝试检查你是否在2个不同的听众之下喜欢这个
final Calendar c = Calendar.getInstance();
mYear = c.get(Calendar.YEAR);
mMonth = c.get(Calendar.MONTH);
mDay = c.get(Calendar.DAY_OF_MONTH);
DatePicker fromDatePicker = (DatePicker) findViewById(R.id.datePicker1);
datePicker.init(mYear, mMonth, mDay, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
//things you want to happen when datepicker1 is changed in your case the From date field
}
});
DatePicker toDatePicker = (DatePicker) findViewById(R.id.datePicker1);
datePicker.init(mYear, mMonth, mDay, new OnDateChangedListener() {
@Override
public void onDateChanged(DatePicker view, int year,
int monthOfYear, int dayOfMonth) {
//things you want to happen when datepicker2 is changed in your case the To date field
}
});