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();
}
});
重新运行正确。呵呵,又解决了一个问题,加油。
原来的代码如下:
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();
}
});
重新运行正确。呵呵,又解决了一个问题,加油。
相关文章推荐
- android 代码实现控件之间的间距
- 解決Linux下Android开发真机调试设备不被识别问题
- [Android]在代码里运行另一个程序的方法
- [软件咨询]WPS2012正式版已发布 金山Office移动版4.0发布
- Android笔记-Linux Kernel Ftrace (Function Trace)解析
- android USB如何修改VID具体实现
- Android Mouse实现过程详细笔记
- 深入Android Browser配置管理的详解
- Android Mms之:深入理解对话列表管理
- Android APP与媒体存储服务的交互
- android 多线程技术应用
- Android之采用execSQL与rawQuery方法完成数据的添删改查操作详解
- Android数据类型之间相互转换系统介绍
- 通过Android trace文件分析死锁ANR实例过程
- Android实现左右滑动效果的方法详解
- Android 各国语言缩写及简称详细介绍
- Android 自动判断是电话,网址,EMAIL方法之Linkify的使用
- android IPC之binder通信机制
- Android应用开发中模拟按下HOME键的效果(实现代码)
- Android 读写文件方法汇总