安卓日期时间选择器对话

Android日期时间选择器在Android应用程序中使用得很多。在本教程中,我们将演示Android应用程序中日期选择器 和** 计时器选择器** 对话框的使用。这些组件用于在定制的用户界面中选择日期和时间。我们将在Android应用程序代码中使用DatePickerDialogTimePickerDialog类以及Calendar类来实现这一点。

Android DatePickerDialog和TimePickerDialog

虽然Date Picker和Time Picker可以作为独立的控件使用,但它们在屏幕上占据了更大的空间。因此,在对话框中使用它们是更好的选择。幸运的是,Android提供了自己的DatePickerDialog和TimePickerDialog类。DatePickerDialog 和** TimePickerDialog** 类分别有onDateSetListener()onTimeSetListener()回调方法。当用户分别填写完日期和时间时,将调用这些回调方法。DatePickerDialog类由一个带有下面列出的参数的5个参数构造函数组成。

1.上下文 :需要应用上下文 2.回调函数 :当用户设置日期时,调用onDateSet(),参数如下:

  • INT Year:从对话框中存储当前选择的年份
  • int monthOfYear:将存储对话框中当前选择的月份
  • int day OfMonth:存储对话框中当前选择的日期

4.int mYear :弹出对话框显示当前年度 5.int mMonth :弹出对话框显示可见的当月 6.int mDay :显示对话框弹出时可见的当天

TimePickerDialog类由一个带有下面列出的参数的5个参数构造函数组成。

1.上下文 :需要应用上下文 2.回调函数onTimeSet()在用户设置时间时调用,参数如下:

  • int hourOfDay:它将存储从对话框中选择的当前小时
  • INT分钟:存储对话框中当前选择的分钟

4.int mHour :对话框弹出时显示当前小时 5.int mMinmin :显示对话框弹出的当前分钟 6.布尔值为FALSE :如果设置为FALSE,则以24小时格式显示时间,否则

Android Date Time Picker示例项目结构

Android日期时间选择器,Android TimePickerDialog,Android DatePickerDialog

Android日期时间选择器对话框项目代码

active_main.xml由两个按钮组成,用于调用日期和时间选取器对话框并在两个EditText视图中设置用户选择的时间。下面给出了XML代码。active_main.xml

 1<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
 2    xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent"
 3    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
 4    android:paddingRight="@dimen/activity_horizontal_margin"
 5    android:paddingTop="@dimen/activity_vertical_margin"
 6    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 7
 8    <EditText
 9        android:layout_width="200dp"
10        android:layout_height="wrap_content"
11        android:id="@+id/in_date"
12        android:layout_marginTop="82dp"
13        android:layout_alignParentTop="true"
14        android:layout_alignParentLeft="true"
15        android:layout_alignParentStart="true" />
16
17    <Button
18        android:layout_width="wrap_content"
19        android:layout_height="wrap_content"
20        android:text="SELECT DATE"
21        android:id="@+id/btn_date"
22        android:layout_alignBottom="@+id/in_date"
23        android:layout_toRightOf="@+id/in_date"
24        android:layout_toEndOf="@+id/in_date" />
25
26    <EditText
27        android:layout_width="200dp"
28        android:layout_height="wrap_content"
29        android:id="@+id/in_time"
30        android:layout_below="@+id/in_date"
31        android:layout_alignParentLeft="true"
32        android:layout_alignParentStart="true" />
33
34    <Button
35        android:layout_width="wrap_content"
36        android:layout_height="wrap_content"
37        android:text="SELECT TIME"
38        android:id="@+id/btn_time"
39        android:layout_below="@+id/btn_date"
40        android:layout_alignLeft="@+id/btn_date"
41        android:layout_alignStart="@+id/btn_date" />
42
43</RelativeLayout>

MainActivity.java类如下:

 1package com.journaldev.datetimepickerdialog;
 2
 3import android.app.DatePickerDialog;
 4import android.app.TimePickerDialog;
 5import android.support.v7.app.AppCompatActivity;
 6import android.os.Bundle;
 7import android.view.Menu;
 8import android.view.MenuItem;
 9import android.view.View;
10import android.widget.Button;
11import android.widget.DatePicker;
12import android.widget.EditText;
13import android.widget.TimePicker;
14
15import java.util.Calendar;
16
17public class MainActivity extends AppCompatActivity implements
18        View.OnClickListener {
19
20    Button btnDatePicker, btnTimePicker;
21    EditText txtDate, txtTime;
22    private int mYear, mMonth, mDay, mHour, mMinute;
23
24    @Override
25    protected void onCreate(Bundle savedInstanceState) {
26        super.onCreate(savedInstanceState);
27        setContentView(R.layout.activity_main);
28
29        btnDatePicker=(Button)findViewById(R.id.btn_date);
30        btnTimePicker=(Button)findViewById(R.id.btn_time);
31        txtDate=(EditText)findViewById(R.id.in_date);
32        txtTime=(EditText)findViewById(R.id.in_time);
33
34        btnDatePicker.setOnClickListener(this);
35        btnTimePicker.setOnClickListener(this);
36
37    }
38
39    @Override
40    public void onClick(View v) {
41
42        if (v == btnDatePicker) {
43
44            // Get Current Date
45            final Calendar c = Calendar.getInstance();
46            mYear = c.get(Calendar.YEAR);
47            mMonth = c.get(Calendar.MONTH);
48            mDay = c.get(Calendar.DAY_OF_MONTH);
49
50            DatePickerDialog datePickerDialog = new DatePickerDialog(this,
51                    new DatePickerDialog.OnDateSetListener() {
52
53                        @Override
54                        public void onDateSet(DatePicker view, int year,
55                                              int monthOfYear, int dayOfMonth) {
56
57                            txtDate.setText(dayOfMonth + "-" + (monthOfYear + 1) + "-" + year);
58
59                        }
60                    }, mYear, mMonth, mDay);
61            datePickerDialog.show();
62        }
63        if (v == btnTimePicker) {
64
65            // Get Current Time
66            final Calendar c = Calendar.getInstance();
67            mHour = c.get(Calendar.HOUR_OF_DAY);
68            mMinute = c.get(Calendar.MINUTE);
69
70            // Launch Time Picker Dialog
71            TimePickerDialog timePickerDialog = new TimePickerDialog(this,
72                    new TimePickerDialog.OnTimeSetListener() {
73
74                        @Override
75                        public void onTimeSet(TimePicker view, int hourOfDay,
76                                              int minute) {
77
78                            txtTime.setText(hourOfDay + ":" + minute);
79                        }
80                    }, mHour, mMinute, false);
81            timePickerDialog.show();
82        }
83    }
84}

在上面的代码中,我们使用Calendar.getInstance()创建了一个Calendar对象,以使用各自的静态字段显示当前日期和时间。注意 :显示日历和时钟是AppCompat主题中提供的默认UI主题。下面是我们的Android日期时间选择器示例应用程序产生的输出。安卓日期时间选取器example这结束了安卓日期时间选取器对话框示例教程。您可以通过下面的链接下载最终的** Android DateTimePickerDialog项目** 。

Android Date Time Picker项目下载

Published At
Categories with 技术
Tagged with
comments powered by Disqus