Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android 時間對話框 TimePickerDialog詳細介紹

android 時間對話框 TimePickerDialog詳細介紹

編輯:關於Android編程

 個人在做提醒功能的時候用到了TimePickerDialog對話框,查閱了很多技術資料,但是感覺很多東西都說的不是很詳細,並且很多地方,都有不完善的地方,比如有彈出對話框得到的不是系統當前的時間,而是一個其他時間的現象,讓人很是苦悶。所以在經過幾度研究之後,決定把個人對此空間的部分理解拿出來與大家討論,如有不對之處,敬請諒解,會加以改進。

閒話不多說,直接進入主題:

首先,我們要在程序中聲明一個日歷的對象,並對其實例化獲取日歷實例,後面會用到。

private Calendar c = Calendar.getInstance();

實例化後便可以對該歷對象進行操作了,如c.get方法可以獲得該日歷對象中的相關變量(如年、月、日、時、分、秒等),這些變量的值在實例化“c = Calendar.getInstance();”時已經被設置為系統默認時間;利用c.set方法可以對日歷對象的相關變量進行設置。
日歷對象還有一個重要的方法是setTimeInMillis,該方法只有一個參數,即距離1970年1月1日0時的毫秒數,調用這個方法,則會根據你傳入的毫秒數對日歷對象中的變量進行相應設置,如果想設置為當前的系統時間,則用以下方式:“c.setTimeInMillis(System.currentTimeMillis());”

下面進入主角,即時間對話框的開發。給出部分實現代碼,具體的細節,自己潛心研究
e1 = (EditText) findViewById(R.id.c1_time);
e1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
                c.setTimeInMillis(System.currentTimeMillis());
                int mHour = c.get(Calendar.HOUR_OF_DAY);
                int mMinute = c.get(Calendar.MINUTE);
                new TimePickerDialog(ClassTimeSet.this,
                                new TimePickerDialog.OnTimeSetListener() {

                                        @Override
                                        public void onTimeSet(TimePicker view,
                                                        int hourOfDay, int minute) {
                                                c.setTimeInMillis(System.currentTimeMillis());
                                                c.set(Calendar.HOUR_OF_DAY, hourOfDay);
                                                c.set(Calendar.MINUTE, minute);
                                                c.set(Calendar.SECOND, 0); // 設為 0
                                                c.set(Calendar.MILLISECOND, 0); // 設為 0
                                        }
                                }, mHour, mMinute, true).show();
        }
});

//判斷時間的小時和分鐘是否低於10的情況 String strHourOfDay = hourOfDay < 10 ? "0" + hourOfDay : "" + hourOfDay;
String strMinute = minute < 10 ? "0" + minute : "" + minute;
TimePickerDialog方法有五個參數,第一個參數(MenuView.this)為彈出的時間對話框所在的activity指針;第二個參數我們最後說;第三個參數(hour)和第四個參數(minute)為彈出的時間對話框的初始顯示的小時和分鐘,這兩個變量在藍色代碼中進行初始化;第五個參數為設置24時顯示參數,true代表時間以24時制顯示時間。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved