Android時(shí)間對(duì)話框TimePickerDialog詳解
目前網(wǎng)上流行著很多對(duì)“時(shí)間對(duì)話框TimePickerDialog”的講解文章,但感覺(jué)都不是很詳細(xì)。所以浣熊在這里詳細(xì)對(duì)該方面的知識(shí)進(jìn)行介紹,旨在幫助初學(xué)者能夠快速掌握該項(xiàng)技術(shù)。
首先要做的是聲明一個(gè)日歷類(lèi)的對(duì)象:
private Calendar c;
然后對(duì)其進(jìn)行實(shí)例化:
c = Calendar.getInstance();
實(shí)例化后便可以對(duì)該日歷對(duì)象進(jìn)行操作了,如c.get方法可以獲得該日歷對(duì)象中的相關(guān)變量(如年、月、日、時(shí)、分、秒等),這些變量的值在實(shí)例化“c = Calendar.getInstance();”時(shí)已經(jīng)被設(shè)置為系統(tǒng)默認(rèn)時(shí)間;利用c.set方法可以對(duì)日歷對(duì)象的相關(guān)變量進(jìn)行設(shè)置。
日歷對(duì)象還有一個(gè)重要的方法是setTimeInMillis,該方法只有一個(gè)參數(shù),即距離1970年1月1日0時(shí)的毫秒數(shù),調(diào)用這個(gè)方法,則會(huì)根據(jù)你傳入的毫秒數(shù)對(duì)日歷對(duì)象中的變量進(jìn)行相應(yīng)設(shè)置,如果想設(shè)置為當(dāng)前的系統(tǒng)時(shí)間,則用以下方式:“c.setTimeInMillis(System.currentTimeMillis());”
介紹完日歷類(lèi)相關(guān)知識(shí)后進(jìn)入正題,即時(shí)間對(duì)話框的開(kāi)發(fā)。給出如下實(shí)例代碼,其中紅色部分為彈出對(duì)話框的按鈕監(jiān)聽(tīng)代碼;藍(lán)色代碼為設(shè)置日歷對(duì)象代碼;剩下的便是時(shí)間對(duì)話框代碼。
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í)間對(duì)話框所在的activity指針;第二個(gè)參數(shù)我們最后說(shuō);第三個(gè)參數(shù)(hour)和第四個(gè)參數(shù)(minute)為彈出的時(shí)間對(duì)話框的初始顯示的小時(shí)和分鐘,這兩個(gè)變量在藍(lán)色代碼中進(jìn)行初始化;第五個(gè)參數(shù)為設(shè)置24時(shí)顯示參數(shù),true代表時(shí)間以24時(shí)制顯示時(shí)間。
下面回過(guò)頭來(lái)說(shuō)第二個(gè)參數(shù),首先我們要了解一下時(shí)間對(duì)話框的樣式,如下圖所示:
點(diǎn)擊“+”標(biāo)題處和方框中的數(shù)字會(huì)同時(shí)增加,同理點(diǎn)擊“-”則數(shù)字以1遞減。對(duì)話框有兩個(gè)button,點(diǎn)擊“Cancel”按鈕后沒(méi)有任何操作,而如果點(diǎn)擊了“Set”按鈕,則會(huì)執(zhí)行onTimeSet方法中的代碼(橘黃色)。
所以根據(jù)示例代碼的邏輯,點(diǎn)擊彈出時(shí)間對(duì)話框的按鈕后,顯示的是系統(tǒng)當(dāng)前時(shí)間,調(diào)整好時(shí)間后點(diǎn)擊Set按鈕,日歷對(duì)象的時(shí)間變量改為設(shè)置的時(shí)間。但是再次點(diǎn)擊彈出時(shí)間對(duì)話框按鈕后,顯示的仍是系統(tǒng)當(dāng)前時(shí)間(藍(lán)色代碼中的c.setTimeInMillis(System.currentTimeMillis());)。當(dāng)然,如果想在程序退出后記錄上一次設(shè)置的時(shí)間值,可以考慮使用輕量級(jí)數(shù)據(jù)庫(kù)Preferences相關(guān)知識(shí)解決。
以上就是時(shí)間對(duì)話框TimePickerDialog的相關(guān)知識(shí),當(dāng)然Android也有日期對(duì)話框DatePickerDialog,兩者的原理都是相通的,在這里就不再贅述了。
- Android對(duì)話框AlertDialog詳解
- Android AlertDialog(對(duì)話框)實(shí)例詳解
- Android AlertDialog六種創(chuàng)建方式案例詳解
- Android AlertDialog多種創(chuàng)建方式案例詳解
- Android AlertDialog的幾種用法詳解
- Android開(kāi)發(fā)之DatePickerDialog、TimePickerDialog時(shí)間日期對(duì)話框用法示例
- Android使用DatePickerDialog顯示時(shí)間
- Android對(duì)話框AlertDialog與DatePickerDialog及TimePickerDialog使用詳解
相關(guān)文章
淺談Android開(kāi)發(fā)Webview的Loading使用效果
這篇文章主要為大家介紹了淺談Android開(kāi)發(fā)Webview的Loading使用效果詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android Studio一直處于Building的兩種解決方法
很多朋友都遇到過(guò)打開(kāi)別人的項(xiàng)目一直處于Building‘XXX’Gradle project info的情況。下面小編給大家?guī)?lái)了Android Studio一直處于Building的解決方法,感興趣的朋友一起看看吧2018-08-08Android利用listview控件操作SQLite數(shù)據(jù)庫(kù)實(shí)例
我們利用SQLiteOpenHelper類(lèi)建立一個(gè)數(shù)據(jù)庫(kù),并寫(xiě)好增、刪、查等方法,通過(guò)SimpleCursorAdapter連接listview實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增加、查詢(xún)以及長(zhǎng)按刪除的功能。2017-04-04Android使用ViewPager實(shí)現(xiàn)頂部tabbar切換界面
這篇文章主要為大家詳細(xì)介紹了使用ViewPager實(shí)現(xiàn)頂部tabbar切換界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08android中g(shù)zip數(shù)據(jù)壓縮與網(wǎng)絡(luò)框架解壓縮
這篇文章主要為大家介紹了android中g(shù)zip數(shù)據(jù)壓縮與網(wǎng)絡(luò)框架解壓縮實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11RxJava+Retrofit+OkHttp實(shí)現(xiàn)多文件下載之?dāng)帱c(diǎn)續(xù)傳
本篇文章主要介紹了RxJava+Retrofit+OkHttp實(shí)現(xiàn)多文件下載之?dāng)帱c(diǎn)續(xù)傳,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-11-11學(xué)習(xí)使用Material Design控件(二)使用DrawerLayout實(shí)現(xiàn)側(cè)滑菜單欄效果
這篇文章主要為大家介紹了學(xué)習(xí)使用Material Design控件的詳細(xì)教程,使用DrawerLayout和NavigationView實(shí)現(xiàn)側(cè)滑菜單欄效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Android?Navigation重建Fragment問(wèn)題分析及解決
這篇文章主要介紹了Android?Navigation重建Fragment問(wèn)題分析及解決,文章通過(guò)圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09Android實(shí)現(xiàn)簡(jiǎn)單的popupwindow提示框
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)簡(jiǎn)單的popupwindow提示框,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-10-10Android自定義視圖實(shí)現(xiàn)手指移動(dòng)軌跡
這篇文章主要為大家詳細(xì)介紹了Android自定義視圖實(shí)現(xiàn)手指移動(dòng)軌跡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06