天天看點

android 開發DatePickerDialog/TimePickerDialog對話框的實作

 AndroidAPI提供了Dialog對話框控件,DatePickerDialog/TimePickerDialog均是AlertDialog的子類,通過DatePickerDialog/TimePickerDialog日期/時間的對話框來進行時間的選擇。

  layout頁面:

  

1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:paddingBottom="@dimen/activity_vertical_margin"
 6     android:paddingLeft="@dimen/activity_horizontal_margin"
 7     android:paddingRight="@dimen/activity_horizontal_margin"
 8     android:paddingTop="@dimen/activity_vertical_margin"
 9     tools:context=".MainActivity" >
10 
11     <Button
12         android:id="@+id/button2"
13         android:layout_width="wrap_content"
14         android:layout_height="wrap_content"
15         android:layout_alignLeft="@+id/button1"
16         android:layout_alignParentBottom="true"
17         android:layout_alignRight="@+id/button1"
18         android:layout_marginBottom="29dp"
19         android:text="時間對話框" />
20 
21     <Button
22         android:id="@+id/button1"
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         android:layout_above="@+id/button2"
26         android:layout_alignParentLeft="true"
27         android:layout_marginBottom="25dp"
28         android:layout_marginLeft="72dp"
29         android:text="日期對話框" />
30 
31     <EditText
32         android:id="@+id/editText1"
33         android:layout_width="wrap_content"
34         android:layout_height="wrap_content"
35         android:layout_alignParentTop="true"
36         android:layout_centerHorizontal="true"
37         android:layout_marginTop="22dp"
38         android:ems="10"/>
39 
40 </RelativeLayout>      

  activity:

  

1 package com.example.android_date_timedialog;
 2 
 3 import java.util.Calendar;
 4 
 5 import android.app.Activity;
 6 import android.app.DatePickerDialog;
 7 import android.app.DatePickerDialog.OnDateSetListener;
 8 import android.app.TimePickerDialog;
 9 import android.app.TimePickerDialog.OnTimeSetListener;
10 import android.os.Bundle;
11 import android.view.Menu;
12 import android.view.View;
13 import android.widget.Button;
14 import android.widget.DatePicker;
15 import android.widget.EditText;
16 import android.widget.TimePicker;
17 import android.widget.Toast;
18 /**
19  * @author xiaowu
20  * NOTE:日期時間對話框控件,繼承自AlertDialog對話框
21  */
22 public class MainActivity extends Activity {
23     private Button button ;
24     private Button button2 ;
25     private EditText editText ;
26     //日期對話框
27     private DatePickerDialog datePickerDialog ;
28     //時間選擇對話框
29     private TimePickerDialog timePickerDialog;
30     private int year, monthOfYear, dayOfMonth, hourOfDay, minute, is24HourView ;
31     @Override
32     protected void onCreate(Bundle savedInstanceState) {
33         super.onCreate(savedInstanceState);
34         setContentView(R.layout.activity_main);
35         button = (Button) findViewById(R.id.button1);
36         button2 = (Button) findViewById(R.id.button2);
37         editText = (EditText) findViewById(R.id.editText1);
38         //初始化月曆
39         Calendar calendar = Calendar.getInstance();
40         year = calendar.get(Calendar.YEAR);
41         monthOfYear = calendar.get(Calendar.MONTH);
42         dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
43         hourOfDay = calendar.get(Calendar.HOUR_OF_DAY);
44         minute = calendar.get(Calendar.MINUTE);
45         //初始化日期datePickerDialog,  注冊日期選擇監聽器
46         datePickerDialog = new DatePickerDialog(MainActivity.this, new OnDateSetListener() {
47             @Override
48             public void onDateSet(DatePicker view, int year, int monthOfYear,
49                     int dayOfMonth) {
50                 // TODO Auto-generated method stub
51                 String text = year+"-"+(monthOfYear+1)+"-"+dayOfMonth ;
52                 editText.setText(text);
53             }
54         }, year, monthOfYear, dayOfMonth);
55         //按鈕點選後顯示日期選擇datePickerDialog
56         button.setOnClickListener(new View.OnClickListener() {
57             @Override
58             public void onClick(View v) {
59                 // TODO Auto-generated method stub
60                 datePickerDialog.show();
61             }
62         });
63         //初始化時間timePickerDialog,  注冊時間選擇監聽器
64         timePickerDialog = new TimePickerDialog(MainActivity.this, new OnTimeSetListener() {
65             @Override
66             public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
67                 // TODO Auto-generated method stub
68                 Toast.makeText(MainActivity.this, hourOfDay+":"+minute, 1).show();
69             }
70         }, hourOfDay, minute, true);
71         //按鈕點選後顯示時間選擇timePickerDialog
72         button2.setOnClickListener(new View.OnClickListener() {
73             @Override
74             public void onClick(View v) {
75                 // TODO Auto-generated method stub
76                 timePickerDialog.show();
77             }
78         });
79     }
80 
81     @Override
82     public boolean onCreateOptionsMenu(Menu menu) {
83         // Inflate the menu; this adds items to the action bar if it is present.
84         getMenuInflater().inflate(R.menu.main, menu);
85         return true;
86     }
87 
88 }      

轉載于:https://www.cnblogs.com/HEWU10/p/4342180.html