???? 發(fā)現(xiàn)有時候,不會的先去網(wǎng)上搜,網(wǎng)上再不滿意那就看文檔。很能解決問題的一個辦法。哈哈 也許你們早就發(fā)現(xiàn)了吧。
???? 要實現(xiàn)功能如下:
????
?左右兩個EditText,均顯示當(dāng)前時間,當(dāng)點(diǎn)擊某一個時,出現(xiàn)日期或者時間控件,可以對其進(jìn)行修改。前提是不用xml寫。
?上代碼吧 (*^__^*) 嘻嘻
// 用來保存年月日:
private int mYear;
private int mMonth;
private int mDay;
// 聲明一個獨(dú)一無二的標(biāo)識,來作為要顯示DatePicker的Dialog的ID:
static final int DATE_DIALOG_ID = 0;
//用來保存時間:
private int mHour;
private int mMinute;
static final int TIME_DIALOG_ID = 1;
?
/**
* 設(shè)置當(dāng)前時間和日期
*/
EditText date=(EditText)layout.findViewById(R.id.date);
date.setInputType(InputType.TYPE_NULL);//關(guān)閉軟鍵盤
EditText time=(EditText)layout.findViewById(R.id.time);
time.setInputType(InputType.TYPE_NULL);//關(guān)閉軟鍵盤
//添加監(jiān)聽
date.setOnClickListener(new dateListener());
time.setOnClickListener(new timeListener());
?
/**
* 實現(xiàn)當(dāng)前時間的選擇和獲取
* 監(jiān)聽類
*
*/
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對話框的事件監(jiān)聽器:
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)));
}
};
/**
* 實現(xiàn)當(dāng)前日期的選擇和獲取
*
* 監(jiān)聽類
*/
class dateListener implements View.OnClickListener {
@Override
public void onClick(View v) {
// 獲得當(dāng)前的日期:
Calendar currentDate = Calendar.getInstance();
mYear = currentDate.get(Calendar.YEAR);
mMonth = currentDate.get(Calendar.MONTH);
mDay = currentDate.get(Calendar.DAY_OF_MONTH);
/*// 設(shè)置文本的內(nèi)容:
date.setText(new StringBuilder().append(mYear).append("-")
.append(mMonth + 1).append("-")// 得到的月份+1,因為從0開始
.append(mDay));*/
showDialog(DATE_DIALOG_ID);
}
}
// 需要定義彈出的DatePicker對話框的事件監(jiān)聽器:
private DatePickerDialog.OnDateSetListener mDateSetListener = new OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
mYear = year;
mMonth = monthOfYear;
mDay = dayOfMonth;
// 設(shè)置文本的內(nèi)容:
date.setText(new StringBuilder().append(mYear).append("-")
.append(mMonth + 1).append("-")// 得到的月份+1,因為從0開始
.append(mDay));
}
};
// 當(dāng)Activity調(diào)用showDialog函數(shù)時會觸發(fā)該函數(shù)的調(diào)用: 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;
}
?
點(diǎn)擊時間時,運(yùn)行效果如下:
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

