您的位置:首页 > 移动开发 > Android开发

DatePickerDialog 的使用

2013-11-25 19:10 309 查看
     通过调用系统的DatePickerDialog,用来设置日期时,如果是1-9时,就应该加0,但是一开始通过calender获取的值,再联系范例取出来的会有bug,比如设置10,显示却是010,设置12还是原来的日期:

     原来的代码如下:

     etTime.setOnClickListener(new OnClickListener() { //当用户点击,触发事件,可以自行修改,但程序会检验时间是否符合逻辑
public void onClick(View v) {
c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
day = c.get(Calendar.DAY_OF_MONTH);
hours = c.get(Calendar.HOUR);
minute = c.get(Calendar.MINUTE);
second = c.get(Calendar.SECOND);
DatePickerDialog dpd = new DatePickerDialog(ActivityMain.this,
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int y,
int monthOfYear, int dayOfMonth) {
String[] time = { "",
hours + ":" + minute + ":" + second };
try {
String[] time2 = etTime.getText()
.toString().trim().split(" ");
if (time2.length == 2) {
time[1] = time2[1];
}
} catch (Exception e) {
e.printStackTrace();
}
String mo = "", da = "";
if (monthOfYear < 10) {
mo = "0" + (monthOfYear + 1);
} else {
mo = monthOfYear + "";
}
if (dayOfMonth < 10) {
da = "0" + dayOfMonth;
} else {
da = dayOfMonth + "";
}
etTime.setText(y + "-" + mo + "-" + da + " "
+ time[1]);
}
}, year, month, day);
dpd.setTitle("设置日期");
dpd.show();
}
});
修改如下:

etTime.setOnClickListener(new OnClickListener() { //当用户点击,触发事件,可以自行修改,但程序会检验时间是否符合逻辑
public void onClick(View v) {
c = Calendar.getInstance();
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH);
//System.out.println(month+"的值");
day = c.get(Calendar.DAY_OF_MONTH);
hours = c.get(Calendar.HOUR);
minute = c.get(Calendar.MINUTE);
second = c.get(Calendar.SECOND);
DatePickerDialog dpd = new DatePickerDialog(ActivityMain.this,
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int y,
int monthOfYear, int dayOfMonth) {
String[] time = { "",
hours + ":" + minute + ":" + second };
try {
String[] time2 = etTime.getText()
.toString().trim().split(" ");
if (time2.length == 2) {
time[1] = time2[1];
}
} catch (Exception e) {
e.printStackTrace();
}
String mo = "", da = "";
if (monthOfYear <=8) {
mo = "0" + (monthOfYear + 1);

else if(monthOfYear == 9){
mo=10+"";
}
else if(monthOfYear== 10){
mo=11+"";
}
else if(monthOfYear == 11){
mo=12+"";
}
else if(monthOfYear == 12){
mo = monthOfYear + "";
}
if (dayOfMonth < 10) {
da = "0" + dayOfMonth;
} else {
da = dayOfMonth + "";
}
etTime.setText(y + "-" + mo + "-" + da + " "
+ time[1]);
}
}, year, month, day);
dpd.setTitle("设置日期");
dpd.show();
}
});

重新运行正确。呵呵,又解决了一个问题,加油。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息