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