Android学习之DatePicker和TimePicker

在Android开发的应用程序中,通常都会有时间和日期选择的需求,下面就对日期选择控件DatePicker和时间选择控件TimePicker的基本使用方法进行介绍:
        DatePicker是一个日期选择控件,它继承自FrameLayout类,用来实现的主要功能是使用护可以方便选择日期。如果要捕获用户修改DataPicker控件中的数据改变事件,需要为DatePicker添加OnDateChangedListener监听器。
        TimePicker是一个时间选择控件,也继承自FrameLayout类。时间选择控件向用户显示一天中的时间(可以为24小时,也可以为AM/PM制),并允许用户进行选择。如果要捕获用户修改时间数据的事件,便需要为TimePicker添加OnTimeChangedListener监听器。

1.效果图:

2.XML代码:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="fill_parent"
 4     android:layout_height="fill_parent"
 5     android:orientation="vertical" >
 6 
 7     <TextView
 8         android:layout_width="fill_parent"
 9         android:layout_height="wrap_content"
10         android:text="请选择时间:" />
11 
12     <DatePicker
13         android:id="@+id/datePicker"
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:layout_gravity="center_horizontal" />
17 
18     <TimePicker
19         android:id="@+id/timePicker"
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content"
22         android:layout_gravity="center_horizontal" />
23 
24     <EditText
25         android:id="@+id/show"
26         android:layout_width="fill_parent"
27         android:layout_height="wrap_content"
28         android:cursorVisible="false"
29         android:editable="false" />
30 
31 </LinearLayout>

3.java代码:

 1 package com.example.datapicker;
 2 
 3 import java.util.Calendar;
 4 import android.app.Activity;
 5 import android.os.Bundle;
 6 import android.widget.DatePicker;
 7 import android.widget.DatePicker.OnDateChangedListener;
 8 import android.widget.EditText;
 9 import android.widget.TimePicker;
10 import android.widget.TimePicker.OnTimeChangedListener;
11 
12 public class MainActivity extends Activity {
13     
14     private DatePicker mDatePicker;
15     private TimePicker mTimePicker;
16     private EditText mEditText;
17 
18     // 定义5个记录当前时间的变量
19     private int year;
20     private int month;
21     private int day;
22     private int hour;
23     private int minute;
24 
25     @Override
26     public void onCreate(Bundle savedInstanceState) {
27         super.onCreate(savedInstanceState);
28         setContentView(R.layout.activity_main);
29         
30         initView();
31         
32     }
33 
34     private void initView() {
35         mDatePicker = (DatePicker) findViewById(R.id.datePicker);
36         mTimePicker = (TimePicker) findViewById(R.id.timePicker);
37         mEditText = (EditText) findViewById(R.id.show);
38         // 获取当前的年、月、日、小时、分钟
39         Calendar c = Calendar.getInstance();
40         year = c.get(Calendar.YEAR);
41         month = c.get(Calendar.MONTH);
42         day = c.get(Calendar.DAY_OF_MONTH);
43         hour = c.get(Calendar.HOUR);
44         minute = c.get(Calendar.MINUTE);
45 
46         
47         //初始化DatePicker组件,初始化时指定监听器
48         mDatePicker.init(year, month, day, new OnDateChangedListener() {
49             @Override
50             public void onDateChanged(DatePicker arg0, int year, int month,
51                     int day) {
52                 MainActivity.this.year = year;
53                 MainActivity.this.month = month;
54                 MainActivity.this.day = day;
55                 // 显示当前日期、时间
56                 showDate(year, month, day, hour, minute);
57             }
58         });
59         
60         // 为TimePicker指定监听器
61         mTimePicker.setOnTimeChangedListener(new OnTimeChangedListener() {
62             @Override
63             public void onTimeChanged(TimePicker arg0, int hour, int minute) {
64                 MainActivity.this.hour = hour;
65                 MainActivity.this.minute = minute;
66                 // 显示当前日期、时间
67                 showDate(year, month, day, hour, minute);
68             }
69         });
70     }
71 
72     
73     // 定义在EditText中显示当前日期、时间的方法
74     private void showDate(int year, int month, int day, int hour, int minute) {
75         mEditText.setText("日期为:" + year + "年" + month + "月" + day + "日  "
76                 + hour + "时" + minute + "分");
77     }
78 }
原文地址:https://www.cnblogs.com/summers/p/4086740.html