发现有时候,不会的先去网上搜,网上再不满意那就看文档。很能解决问题的一个办法。哈哈 也许你们早就发现了吧。
要实现功能如下:
左右两个EditText,均显示当前时间,当点击某一个时,出现日期或者时间控件,可以对其进行修改。前提是不用xml写。
上代码吧 (*^__^*) 嘻嘻
// 用来保存年月日:
private int mYear;
private int mMonth;
private int mDay;
// 声明一个独一无二的标识,来作为要显示DatePicker的Dialog的ID:
static final int DATE_DIALOG_ID = 0;
//用来保存时间:
private int mHour;
private int mMinute;
static final int TIME_DIALOG_ID = 1;
/**
* 设置当前时间和日期
*/
EditText date=(EditText)layout.findViewById(R.id.date);
date.setInputType(InputType.TYPE_NULL);//关闭软键盘
EditText time=(EditText)layout.findViewById(R.id.time);
time.setInputType(InputType.TYPE_NULL);//关闭软键盘
//添加监听
date.setOnClickListener(new dateListener());
time.setOnClickListener(new timeListener());
/**
* 实现当前时间的选择和获取
* 监听类
*
*/
class timeListener implements View.OnClickListener{
@Override
public void onClick(View v) {
// get the current time
final Calendar c = Calendar.getInstance();
mHour = c.get(Calendar.HOUR_OF_DAY);
mMinute = c.get(Calendar.MINUTE);
// display the current date
time.setText( new StringBuilder().append(pad(mHour)).append(":")
.append(pad(mMinute)));
showDialog(TIME_DIALOG_ID);
}
}
private static String pad(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}
// // 需要定义弹出的TimePicker对话框的事件监听器:
private TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
mHour = hourOfDay;
mMinute = minute;
time.setText( new StringBuilder().append(pad(mHour)).append(":")
.append(pad(mMinute)));
}
};
/**
* 实现当前日期的选择和获取
*
* 监听类
*/
class dateListener implements View.OnClickListener {
@Override
public void onClick(View v) {
// 获得当前的日期:
Calendar currentDate = Calendar.getInstance();
mYear = currentDate.get(Calendar.YEAR);
mMonth = currentDate.get(Calendar.MONTH);
mDay = currentDate.get(Calendar.DAY_OF_MONTH);
/*// 设置文本的内容:
date.setText(new StringBuilder().append(mYear).append("-")
.append(mMonth + 1).append("-")// 得到的月份+1,因为从0开始
.append(mDay));*/
showDialog(DATE_DIALOG_ID);
}
}
// 需要定义弹出的DatePicker对话框的事件监听器:
private DatePickerDialog.OnDateSetListener mDateSetListener = new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
// 设置文本的内容:
date.setText(new StringBuilder().append(mYear).append("-")
.append(mMonth + 1).append("-")// 得到的月份+1,因为从0开始
.append(mDay));
}
};
// 当Activity调用showDialog函数时会触发该函数的调用: 66. */
protected Dialog onCreateDialog(int id) {
switch (id) {
case DATE_DIALOG_ID:
return new DatePickerDialog(this, mDateSetListener, mYear, mMonth,mDay);
case TIME_DIALOG_ID:
return new TimePickerDialog(this, mTimeSetListener, mHour, mMinute,
false);
}
return null;
}
点击时间时,运行效果如下:
我就喜欢看有图有代码的,简单明了。嘿嘿