DatePickerDialog 的使用

     通过调用系统的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();
}
});

重新运行正确。呵呵,又解决了一个问题,加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值