我使用以下代码实现了一个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;
}
以下是侦听器的inizialization:
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代1900。
另一个问题是,当我试图更改数据报警器中的日期时。例如,我将1设置为2,结果如下:
日历已到达2036年2月2日。为什么?
注:如果我将数据报头中的年份从1900年更改为1901年,则日历年度更改为2037年,但如果我在数据报头中将日期设置为1902年,则日历中的年份将变为1902年(以此类推)。
发布于 2013-09-12 01:45:08
请阅读DatePickerDialog
构造函数的文档。这些参数如下:
公共DatePickerDialog (上下文,DatePickerDialog.OnDateSetListener callBack,int年份,int monthOfYear,int dayOfMonth) 参数 上下文对话框将在其中运行。 callBack如何通知父级设置日期。 对话的第一年。 monthOfYear对话框的初始月份。 dayOfMonth对话框的第一天。
因此,呼吁应该是:
DatePickerDialog(this, from_dateListener, 2013, 10, 2);
发布于 2013-09-12 01:57:35
做一些像这样的事
DatePickerDialog dp = new DatePickerDialog(mContext, datePickerListener, Year, Month, Day);
https://stackoverflow.com/questions/18760585
复制相似问题