溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android開發(fā)中使用TimePickerDialog實現(xiàn)一個時間對話框

發(fā)布時間:2020-11-23 16:58:00 來源:億速云 閱讀:218 作者:Leah 欄目:移動開發(fā)

Android開發(fā)中使用TimePickerDialog實現(xiàn)一個時間對話框?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

首先要做的是聲明一個日歷類的對象: 

private Calendar c;

然后對其進(jìn)行實例化:
c = Calendar.getInstance();

實例化后便可以對該日歷對象進(jìn)行操作了,如c.get方法可以獲得該日歷對象中的相關(guān)變量(如年、月、日、時、分、秒等),這些變量的值在實例化“c = Calendar.getInstance();”時已經(jīng)被設(shè)置為系統(tǒng)默認(rèn)時間;利用c.set方法可以對日歷對象的相關(guān)變量進(jìn)行設(shè)置。

日歷對象還有一個重要的方法是setTimeInMillis,該方法只有一個參數(shù),即距離1970年1月1日0時的毫秒數(shù),調(diào)用這個方法,則會根據(jù)你傳入的毫秒數(shù)對日歷對象中的變量進(jìn)行相應(yīng)設(shè)置,如果想設(shè)置為當(dāng)前的系統(tǒng)時間,則用以下方式:“c.setTimeInMillis(System.currentTimeMillis());”

介紹完日歷類相關(guān)知識后進(jìn)入正題,即時間對話框的開發(fā)。給出如下實例代碼,其中紅色部分為彈出對話框的按鈕監(jiān)聽代碼;藍(lán)色代碼為設(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方法有五個參數(shù),第一個參數(shù)(MenuView.this)為彈出的時間對話框所在的activity指針;第二個參數(shù)我們最后說;第三個參數(shù)(hour)和第四個參數(shù)(minute)為彈出的時間對話框的初始顯示的小時和分鐘,這兩個變量在藍(lán)色代碼中進(jìn)行初始化;第五個參數(shù)為設(shè)置24時顯示參數(shù),true代表時間以24時制顯示時間。

下面回過頭來說第二個參數(shù),首先我們要了解一下時間對話框的樣式,如下圖所示:

Android開發(fā)中使用TimePickerDialog實現(xiàn)一個時間對話框

點擊“+”標(biāo)題處和方框中的數(shù)字會同時增加,同理點擊“-”則數(shù)字以1遞減。對話框有兩個button,點擊“Cancel”按鈕后沒有任何操作,而如果點擊了“Set”按鈕,則會執(zhí)行onTimeSet方法中的代碼(橘黃色)。
所以根據(jù)示例代碼的邏輯,點擊彈出時間對話框的按鈕后,顯示的是系統(tǒng)當(dāng)前時間,調(diào)整好時間后點擊Set按鈕,日歷對象的時間變量改為設(shè)置的時間。但是再次點擊彈出時間對話框按鈕后,顯示的仍是系統(tǒng)當(dāng)前時間(藍(lán)色代碼中的c.setTimeInMillis(System.currentTimeMillis());)。當(dāng)然,如果想在程序退出后記錄上一次設(shè)置的時間值,可以考慮使用輕量級數(shù)據(jù)庫Preferences相關(guān)知識解決。

看完上述內(nèi)容,你們掌握Android開發(fā)中使用TimePickerDialog實現(xiàn)一個時間對話框的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI