最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android自定義DataTimePicker日期時間選擇器使用詳解

 更新時間:2022年09月19日 12:00:15   作者:安卓飛  
這篇文章主要為大家詳細(xì)介紹了Android自定義DataTimePicker日期時間選擇器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

Android開發(fā)之自定義DataTimePicker(日期時間選擇器),供大家參考,具體內(nèi)容如下

最近項目中,要求日期和時間在同一個頁面同時選擇,這個就需要自定義了,其實所謂的自定義只不過是把時間和日期對話框組合在一起而已。

一、基本知識

1、關(guān)于日期的幾個控件:

DatePicker(日期選擇控件)
TimePicker(時間選擇控件)
DatePickerDialog(日期選擇對話框)
TimePickerDialog(時間選擇對話框)
AnalogClock(模擬時鐘控件)
DigitalClock(數(shù)字時鐘控件)

2、相關(guān)控件介紹

DatePicker 、 TimePicker 都繼承自Android.widget.FrameLayout,并且默認(rèn)展示風(fēng)格、與操作風(fēng)格也類似。DatePicker用于展示一個日期選擇控件,TimePicker用于展示一個時間選擇控件。

DatePicker常用相關(guān)屬性:

android:calendarViewShown:是否顯示日歷
android:spinnersShown:是否顯示為滾動條樣式(會同時顯示日歷和滾動條樣式上邊兩個都不設(shè)置)
android:startYear:設(shè)置可選開始年份。
android:endYear:設(shè)置可選結(jié)束年份。
android:maxDate:設(shè)置可選最大日期,以mm/dd/yyyy格式設(shè)置。
android:minDate:設(shè)置可選最小日期,以mm/dd/yyyy格式設(shè)置。
DatePicker的方法而言,除了常用獲取屬性的setter、getter方法之外,還需要特別注意一個初始化的方法init()方法,用于做DatePicker控件的初始化,并且設(shè)置日期被修改后,回調(diào)的響應(yīng)事件。此方法的簽名如下:
init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener)
從上面的init()方法可以看到,DatePicker被修改時響應(yīng)的事件是DatePicker.OnDateChangedListener 事件,如果要響應(yīng)此事件,需要實現(xiàn)其中的onDateChanged()方法,其中參數(shù)從簽名即可了解意思,這里不再累述。
onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth)
作為一個時間選擇控件來說,TimePicker需要與時間相關(guān)的getter、setter方法之外,還需要有時間被修改夠,回調(diào)的響應(yīng)事件。

TimePicker常用方法有如下幾個:

is24HourView():判斷是否為24小時制。
setIs24HourView():設(shè)置是否為24小時制顯示。
getCurrentXxx():獲取當(dāng)前時間。
setCurrentXxx():設(shè)置當(dāng)前時間。
setOnTimeChangedListener():設(shè)置時間被修改的回調(diào)方法。
TimePicker控件被修改的回調(diào)方法,通過setOnTimeChangedListener()方法設(shè)置,其傳遞一個 TimePicker.OnTimeChangedListener 接口,需要實現(xiàn)其中的onTimeChanged()方法。

二、實現(xiàn)步驟

首先,對話框的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
? ? android:layout_width="wrap_content"
? ? android:layout_height="wrap_content"
? ? android:gravity="center"
? ? android:orientation="vertical">

? ? <DatePicker
? ? ? ? android:id="@+id/data_picker"
? ? ? ? android:layout_width="wrap_content"
? ? ? ? android:layout_height="wrap_content"
? ? ? ? android:calendarViewShown="false" />

? ? <TimePicker
? ? ? ? android:id="@+id/timer_picker"
? ? ? ? android:layout_width="wrap_content"
? ? ? ? android:layout_height="wrap_content" />
</LinearLayout>

然后,我封裝了一個工具類:

public static void getDateTime(Context mContext, final TextView textView) {
? ? ? ? View date_time_picker = View.inflate(mContext, R.layout.date_time_picker, null);
? ? ? ? final DatePicker datePicker = (DatePicker) date_time_picker.findViewById(R.id.data_picker);
? ? ? ? final TimePicker timePicker = (TimePicker) date_time_picker.findViewById(R.id.timer_picker);

? ? ? ? timePicker.setIs24HourView(true);
? ? ? ? // ? Build ? DateTimeDialog
? ? ? ? AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
? ? ? ? builder.setView(date_time_picker);
? ? ? ? builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void onClick(DialogInterface dialog, int which) {
? ? ? ? ? ? ? ? String dateStr = datePicker.getYear() + "-" + datePicker.getMonth() + "-" + datePicker.getDayOfMonth();
? ? ? ? ? ? ? ? int currentMinute = timePicker.getCurrentMinute();
? ? ? ? ? ? ? ? String curMinute = "";
? ? ? ? ? ? ? ? if (currentMinute < 10) {
? ? ? ? ? ? ? ? ? ? curMinute = "0" + currentMinute;
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? curMinute = String.valueOf(currentMinute);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? String timeStr = timePicker.getCurrentHour() + ":" + curMinute;
? ? ? ? ? ? ? ? textView.setText(dateStr + " ?" + timeStr);
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? builder.show();
? ? }

最后,直接調(diào)用就好了

DateUtil.getDateTime(this, tv);

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

阿克| 齐齐哈尔市| 岳普湖县| 江源县| 贵州省| 明星| 文安县| 休宁县| 嘉善县| 南靖县| 灵台县| 翼城县| 青州市| 柘荣县| 二连浩特市| 仲巴县| 奎屯市| 申扎县| 仙桃市| 蚌埠市| 环江| 穆棱市| 福清市| 临清市| 沧州市| 开鲁县| 沙河市| 驻马店市| 通山县| 轮台县| 江城| 平舆县| 鄂尔多斯市| 崇仁县| 华宁县| 栖霞市| 斗六市| 杭锦后旗| 临颍县| 祁阳县| 焉耆|