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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM