Android开发手记(9) DatePickerDialog 和 TimePickerDialog

1、DatePickerDialog 

  用于获取用户输入的日期信息。其原型为:

public DatePickerDialog(Contex contex, DatePickerDialog.OnDateSetListener callback, int year, int month, int day);

  其中,year,month,day是传递给DatePickerDialog的初始值信息,然后通过OnDateSetListener来设置用户选择的日期。

1  DatePickerDialog dpDlg = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
2                     @Override
3                     public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
4                         year = i;
5                         month = i1;
6                         day = i2;
7                         tvDate.setText(year + "-" + month + "-" + day);
8                     }
9                 },year,month,day);

  

  完整代码为:

 1 import android.app.DatePickerDialog;
 2 import android.support.v7.app.AppCompatActivity;
 3 import android.os.Bundle;
 4 import android.view.View;
 5 import android.widget.Button;
 6 import android.widget.DatePicker;
 7 import android.widget.TextView;
 8 
 9 import java.util.Calendar;
10 import java.util.Date;
11 import java.util.Locale;
12 
13 public class MainActivity extends AppCompatActivity {
14 
15     private TextView tvDate;
16     private Button btnDateDlg;
17     private int year;
18     private int month;
19     private int day;
20 
21     @Override
22     protected void onCreate(Bundle savedInstanceState) {
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.activity_main);
25 
26         tvDate = (TextView) findViewById(R.id.textView);
27         btnDateDlg = (Button) findViewById(R.id.button);
28         Calendar myCalendar = Calendar.getInstance(Locale.CHINA);
29         Date date = new Date();
30         myCalendar.setTime(date);
31 
32         year = myCalendar.get(Calendar.YEAR);
33         month = myCalendar.get(Calendar.MONTH);
34         day = myCalendar.get(Calendar.DAY_OF_MONTH);
35         tvDate.setText(year + "-" + month + "-" + day);
36         btnDateDlg.setOnClickListener(new View.OnClickListener() {
37             @Override
38             public void onClick(View view) {
39                 DatePickerDialog dpDlg = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() {
40                     @Override
41                     public void onDateSet(DatePicker datePicker, int i, int i1, int i2) {
42                         year = i;
43                         month = i1;
44                         day = i2;
45                         tvDate.setText(year + "-" + month + "-" + day);
46                     }
47                 },year,month,day);
48                 dpDlg.show();
49             }
50         });
51 
52     }
53 
54 }

2、TimePickerDialog 

  用于获取用户输入的日期信息。其原型为:

public TimePickerDialog(Contex contex, TimePickerDialog.OnTimeSetListener callback, int hour, int minute, boolean is24Hours);

  其中,hour,minute是传递给TimePickerDialog的初始值信息,is24Hours表示是否为24小时制,然后通过OnTimeSetListener来设置用户选择的日期。

1 TimePickerDialog tpDlg = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
2                     @Override
3                     public void onTimeSet(TimePicker timePicker, int i, int i1) {
4                         hour = i;
5                         minute = i1;
6                         tvTime.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute);
7                     }
8                 },hour, minute,true);
9                 tpDlg.show();

  

  完整代码为:

 1 import android.app.TimePickerDialog;
 2 import android.support.v7.app.AppCompatActivity;
 3 import android.os.Bundle;
 4 import android.view.View;
 5 import android.widget.Button;
 6 import android.widget.TextView;
 7 import android.widget.TimePicker;
 8 
 9 import java.util.Calendar;
10 import java.util.Date;
11 import java.util.Locale;
12 
13 public class MainActivity extends AppCompatActivity {
14 
15     private TextView tvTime;
16     private Button btnTimeDlg;
17     private int year;
18     private int month;
19     private int day;
20     private int hour;
21     private int minute;
22 
23     @Override
24     protected void onCreate(Bundle savedInstanceState) {
25         super.onCreate(savedInstanceState);
26         setContentView(R.layout.activity_main);
27 
28         tvTime = (TextView) findViewById(R.id.textView);
29         btnTimeDlg = (Button) findViewById(R.id.button);
30         Calendar myCalendar = Calendar.getInstance(Locale.CHINA);
31         Date date = new Date();
32         myCalendar.setTime(date);
33 
34         year = myCalendar.get(Calendar.YEAR);
35         month = myCalendar.get(Calendar.MONTH);
36         day = myCalendar.get(Calendar.DAY_OF_MONTH);
37         hour = myCalendar.get(Calendar.HOUR);
38         minute = myCalendar.get(Calendar.MINUTE);
39         tvTime.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute);
40         btnTimeDlg.setOnClickListener(new View.OnClickListener() {
41             @Override
42             public void onClick(View view) {
43                 TimePickerDialog tpDlg = new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
44                     @Override
45                     public void onTimeSet(TimePicker timePicker, int i, int i1) {
46                         hour = i;
47                         minute = i1;
48                         tvTime.setText(year + "-" + month + "-" + day + " " + hour + ":" + minute);
49                     }
50                 },hour, minute,true);
51                 tpDlg.show();
52             }
53         });
54 
55     }
56 
57 }
原文地址:https://www.cnblogs.com/doodle777/p/DateTimePickerDialog.html