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