【发布时间】:2013-09-12 09:34:52
【问题描述】:
我使用以下代码实现了一个DatePicker 对话框:
static final int DATE_PICKER_FROM = 0;
DatePickerDialog.OnDateSetListener from_dateListener;
private EditText editDateStart;
...
private void addListenersToButtons(){
editDateStart = (EditText)findViewById(R.id.editDateStart);
editDateStart.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
showDialog(DATE_PICKER_FROM);
}
});
}
@Override
protected Dialog onCreateDialog(int id) {
// TODO Auto-generated method stub
switch (id) {
case DATE_PICKER_FROM:
return new DatePickerDialog(this, from_dateListener,2,10,2013);
}
return null;
}
以下是监听器的初始化:
from_dateListener = new DatePickerDialog.OnDateSetListener() {
// when dialog box is closed, below method will be called.
public void onDateSet(DatePicker view, int selectedYear,
int selectedMonth, int selectedDay) {
int year = selectedYear;
int month = selectedMonth;
int day = selectedDay;
editDateStart.setText(
new StringBuilder()
.append(pad(day)).append("/")
.append(pad(month + 1)).append("/")
.append(year).append(" "));
}
};
当点击 EditText 字段时,对话框显示如下:
所以,我尝试使用代码设置的日期:
DatePickerDialog(this, from_dateListener,2,10,2013);
不出现。如您所见,日期是 1 gen 1900。
当我尝试在日期选择器中更改日期时,会出现另一个问题。例如我设置了从 1 到 2,结果如下:
日历已到 2036 年 2 月 2 日。为什么?
注意:如果我将日期选择器中的年份从 1900 更改为 1901,则日历年更改为 2037,但如果我在日期选择器中将日期设置为 1902,日历中的年份将变为 1902(依此类推)
【问题讨论】:
标签: android android-dialog android-datepicker