Android時(shí)間對話框TimePickerDialog詳解
目前網(wǎng)上流行著很多對“時(shí)間對話框TimePickerDialog”的講解文章,但感覺都不是很詳細(xì)。所以浣熊在這里詳細(xì)對該方面的知識進(jìn)行介紹,旨在幫助初學(xué)者能夠快速掌握該項(xiàng)技術(shù)。
首先要做的是聲明一個(gè)日歷類的對象:
private Calendar c;
然后對其進(jìn)行實(shí)例化:
c = Calendar.getInstance();
實(shí)例化后便可以對該日歷對象進(jìn)行操作了,如c.get方法可以獲得該日歷對象中的相關(guān)變量(如年、月、日、時(shí)、分、秒等),這些變量的值在實(shí)例化“c = Calendar.getInstance();”時(shí)已經(jīng)被設(shè)置為系統(tǒng)默認(rèn)時(shí)間;利用c.set方法可以對日歷對象的相關(guān)變量進(jìn)行設(shè)置。
日歷對象還有一個(gè)重要的方法是setTimeInMillis,該方法只有一個(gè)參數(shù),即距離1970年1月1日0時(shí)的毫秒數(shù),調(diào)用這個(gè)方法,則會(huì)根據(jù)你傳入的毫秒數(shù)對日歷對象中的變量進(jìn)行相應(yīng)設(shè)置,如果想設(shè)置為當(dāng)前的系統(tǒng)時(shí)間,則用以下方式:“c.setTimeInMillis(System.currentTimeMillis());”
介紹完日歷類相關(guān)知識后進(jìn)入正題,即時(shí)間對話框的開發(fā)。給出如下實(shí)例代碼,其中紅色部分為彈出對話框的按鈕監(jiān)聽代碼;藍(lán)色代碼為設(shè)置日歷對象代碼;剩下的便是時(shí)間對話框代碼。
final ImageButton time = (ImageButton) findViewById(R.id.time);
time.setOnClickListener(new ImageButton.OnClickListener() {
public void onClick(View view){
c.setTimeInMillis(System.currentTimeMillis());
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
new TimePickerDialog(MenuView.this,new OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view,inthourOfDay,int minute)
{
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY,hourOfDay);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
}
}, hour, minute, true).show();
}
});
TimePickerDialog方法有五個(gè)參數(shù),第一個(gè)參數(shù)(MenuView.this)為彈出的時(shí)間對話框所在的activity指針;第二個(gè)參數(shù)我們最后說;第三個(gè)參數(shù)(hour)和第四個(gè)參數(shù)(minute)為彈出的時(shí)間對話框的初始顯示的小時(shí)和分鐘,這兩個(gè)變量在藍(lán)色代碼中進(jìn)行初始化;第五個(gè)參數(shù)為設(shè)置24時(shí)顯示參數(shù),true代表時(shí)間以24時(shí)制顯示時(shí)間。
下面回過頭來說第二個(gè)參數(shù),首先我們要了解一下時(shí)間對話框的樣式,如下圖所示:

點(diǎn)擊“+”標(biāo)題處和方框中的數(shù)字會(huì)同時(shí)增加,同理點(diǎn)擊“-”則數(shù)字以1遞減。對話框有兩個(gè)button,點(diǎn)擊“Cancel”按鈕后沒有任何操作,而如果點(diǎn)擊了“Set”按鈕,則會(huì)執(zhí)行onTimeSet方法中的代碼(橘黃色)。
所以根據(jù)示例代碼的邏輯,點(diǎn)擊彈出時(shí)間對話框的按鈕后,顯示的是系統(tǒng)當(dāng)前時(shí)間,調(diào)整好時(shí)間后點(diǎn)擊Set按鈕,日歷對象的時(shí)間變量改為設(shè)置的時(shí)間。但是再次點(diǎn)擊彈出時(shí)間對話框按鈕后,顯示的仍是系統(tǒng)當(dāng)前時(shí)間(藍(lán)色代碼中的c.setTimeInMillis(System.currentTimeMillis());)。當(dāng)然,如果想在程序退出后記錄上一次設(shè)置的時(shí)間值,可以考慮使用輕量級數(shù)據(jù)庫Preferences相關(guān)知識解決。
以上就是時(shí)間對話框TimePickerDialog的相關(guān)知識,當(dāng)然Android也有日期對話框DatePickerDialog,兩者的原理都是相通的,在這里就不再贅述了。
- Android對話框AlertDialog詳解
- Android AlertDialog(對話框)實(shí)例詳解
- Android AlertDialog六種創(chuàng)建方式案例詳解
- Android AlertDialog多種創(chuàng)建方式案例詳解
- Android AlertDialog的幾種用法詳解
- Android開發(fā)之DatePickerDialog、TimePickerDialog時(shí)間日期對話框用法示例
- Android使用DatePickerDialog顯示時(shí)間
- Android對話框AlertDialog與DatePickerDialog及TimePickerDialog使用詳解
相關(guān)文章
Android apk安裝替換卸載廣播的實(shí)現(xiàn)代碼
以下代碼實(shí)現(xiàn)比較簡單,根據(jù)接收到的Action來判斷應(yīng)用程序是安裝 卸載還是被替換成其他版本,需要的朋友可以參考下2013-07-07
Android開發(fā)實(shí)現(xiàn)的簡單媒體播放器功能示例
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)的簡單媒體播放器功能,結(jié)合實(shí)例形式分析了Android基于surfaceview實(shí)現(xiàn)多媒體視頻及音頻播放的相關(guān)操作技巧,需要的朋友可以參考下2017-10-10
Android 調(diào)用設(shè)備已有的相機(jī)應(yīng)用詳情
這篇文章主要介紹了Android 調(diào)用設(shè)備已有的相機(jī)應(yīng)用,如果我們只是需要讓用戶能夠拍攝照片,則可以直接請求已有相機(jī)應(yīng)用拍攝照片并將照片返回給我們,下面我們一起來看看這些功能,需要的朋友可以參考一下2021-10-10
Android4.1中BinderService用法實(shí)例分析
這篇文章主要介紹了Android4.1中BinderService用法,以實(shí)例形式分析了Android4.1新增BinderService類的功能、原理及使用技巧,具有一定參考借鑒價(jià)值2015-10-10
flutter開發(fā)的app項(xiàng)目?打包成web
如果你的Flutter版本低于2.0,請先升級Flutter版本,創(chuàng)建一個(gè)web文件夾來存放web相關(guān)的資源,使用HTML渲染器打包,該渲染器提供的打開速度最快,并且具有良好的瀏覽器兼容性,使用默認(rèn)設(shè)置進(jìn)行打包,提供的打開速度為一般,但依然保持良好的瀏覽器兼容性2024-08-08

