歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android時間對話框TimePickerDialog介紹

Android時間對話框TimePickerDialog介紹

日期:2017/3/1 10:44:36   编辑:Linux編程
目前網上流行著很多對“時間對話框TimePickerDialog”的講解文章,但感覺都不是很詳細。所以浣熊在這裡詳細對該方面的知識進行介紹,旨在幫助初學者能夠快速掌握該項技術。

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

private Calendar c;

然後對其進行實例化:

c = Calendar.getInstance();

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

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

介紹完日歷類相關知識後進入正題,即時間對話框的開發。給出如下實例代碼,其中紅色部分為彈出對話框的按鈕監聽代碼;藍色代碼為設置日歷對象代碼;剩下的便是時間對話框代碼。

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方法有五個參數,第一個參數(MenuView.this)為彈出的時間對話框所在的activity指針;第二個參數我們最後說;第三個參數(hour)和第四個參數(minute)為彈出的時間對話框的初始顯示的小時和分鐘,這兩個變量在藍色代碼中進行初始化;第五個參數為設置24時顯示參數,true代表時間以24時制顯示時間。

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


點擊“+”標題處和方框中的數字會同時增加,同理點擊“-”則數字以1遞減。對話框有兩個button,點擊“Cancel”按鈕後沒有任何操作,而如果點擊了“Set”按鈕,則會執行onTimeSet方法中的代碼(橘黃色)。

所以根據示例代碼的邏輯,點擊彈出時間對話框的按鈕後,顯示的是系統當前時間,調整好時間後點擊Set按鈕,日歷對象的時間變量改為設置的時間。但是再次點擊彈出時間對話框按鈕後,顯示的仍是系統當前時間(藍色代碼中的c.setTimeInMillis(System.currentTimeMillis());)。當然,如果想在程序退出後記錄上一次設置的時間值,可以考慮使用輕量級數據庫Preferences相關知識解決。

以上就是時間對話框TimePickerDialog的相關知識,當然Android也有日期對話框DatePickerDialog,兩者的原理都是相通的,在這裡就不再贅述了。
Copyright © Linux教程網 All Rights Reserved