DatePicker and Timepicker usage in Android (including Datepickerdialog and Timepickerdialog)
Last Update:2015-06-22
Source: Internet
Author: User
<span id="Label3"></p><p><p>Achieve effect: DatePicker and Timepicker modified date and time are displayed in real time on the program title bar.</p></p><p><p><span style="color: #008000;"><strong>1. Through DatePicker and timepicker to achieve</strong></span></p></p><p><p>Layout is Main.xml</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;"><?</span></span><span style="color: #ff00ff;"><span style="color: #ff00ff;">XML version= "1.0" encoding= "utf-8"</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">?></span></span><span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">LinearLayout</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">xmlns:android</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "http://schemas.android.com/apk/res/android"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_width</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "match_parent"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_height</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "match_parent"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">android:orientation</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "vertical"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">></span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">DatePicker</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:id</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "@+id/datepicker"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_width</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "match_parent"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_height</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "wrap_content"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">/></span></span> <span style="color: #0000ff;"><span style="color: #0000ff;"><</span></span><span style="color: #800000;"><span style="color: #800000;">Timepicker</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:id</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "@+id/timepicker"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_width</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "match_parent"</span></span><span style="color: #ff0000;"><span style="color: #ff0000;">Android:layout_height</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">= "wrap_content"</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">/></span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></</span></span><span style="color: #800000;"><span style="color: #800000;">LinearLayout</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">></span></span></pre><p><p>Mainactivity.java</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">java.util.Calendar;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.support.v7.app.ActionBarActivity;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.DatePickerDialog;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.DatePickerDialog.OnDateSetListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.TimePickerDialog;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.TimePickerDialog.OnTimeSetListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.os.Bundle;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.Menu;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.MenuItem;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.DatePicker;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.DatePicker.OnDateChangedListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.TimePicker;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.TimePicker.OnTimeChangedListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span>Mainactivity<span style="color: #0000ff;"><span style="color: #0000ff;">extends</span></span><span style="color: #000000;"><span style="color: #000000;">actionbaractivity {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span><span style="color: #000000;"><span style="color: #000000;">Timepicker timepicker; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span><span style="color: #000000;"><span style="color: #000000;">DatePicker DatePicker; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span><span style="color: #000000;"><span style="color: #000000;">Calendar cal; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;">year <span style="color: #000000;">, month, day; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">hour, minute; @Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">protected</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">onCreate (Bundle Savedinstancestate) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Super</span></span><span style="color: #000000;"><span style="color: #000000;">. OnCreate (savedinstancestate); Setcontentview (r.layout.main); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">get an object for a calendar</span></span>Cal =<span style="color: #000000;"><span style="color: #000000;">calendar.getinstance (); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">get information about days and seconds</span></span>Year =<span style="color: #000000;"><span style="color: #000000;">Cal.get (calendar.year); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">month is calculated starting from 0 (January month = 0)</span></span>month = Cal.get (calendar.month) +1<span style="color: #000000;"><span style="color: #000000;">; </span>day</span>=<span style="color: #000000;"><span style="color: #000000;">Cal.get (calendar.day_of_month); Hour</span></span>=<span style="color: #000000;"><span style="color: #000000;">Cal.get (calendar.hour_of_day); Minute</span></span>=<span style="color: #000000;"><span style="color: #000000;">Cal.get (calendar.minute); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Set Title</span></span>Settitle (year+ "-" +month+ "-" +day+ "" +hour+ ":" +<span style="color: #000000;"><span style="color: #000000;">minute); DatePicker</span></span>=<span style="color: #000000;"><span style="color: #000000;">(DatePicker) Findviewbyid (r.id.datepicker); Timepicker</span></span>=<span style="color: #000000;"><span style="color: #000000;">(timepicker) Findviewbyid (r.id.timepicker); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">initialization of the DatePicker</span></span>Datepicker.init (year, cal.get (calendar.month), day,<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Ondatechangedlistener () {@Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Ondatechanged (DatePicker view,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Year<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>monthofyear,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">Dayofmonth) { </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Monthofyear calculated from 0</span></span>Settitle (year+ "-" + (monthofyear+1) + "-" +<span style="color: #000000;"><span style="color: #000000;">dayofmonth); } }); Timepicker.setontimechangedlistener (</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Ontimechangedlistener () {@Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Ontimechanged (timepicker view,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>hourofday,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">Minute) {settitle (hourofday</span></span>+":"+<span style="color: #000000;"><span style="color: #000000;">minute); } });<br>}<br>}</span></span></pre><p><p>First set up the Calendar object to get the current system time and date, and then set on the program title bar, note that the value returned by Cal.get (calendar.month) starts at 0, that is, the return 0 o'clock represents January.</p></p><p><p>DatePicker initialization calls public void init (int year, int monthofyear, int dayofmonth, Ondatechangedlistener <em> Ondatechangedlistener</em>), The last parameter is the listener for Datepicker. The Timepicker directly sets the Listener.</p></p><p><p>Run</p></p><p><p></p></p><p><p>Change DatePicker</p></p><p><p></p></p><p><p>Change Timepicker</p></p><p><p></p></p><p><p><strong><span style="color: #008000;">2. Use dialog, more Beautiful</span></strong></p></p><p><p><span style="color: #008000;"><span style="color: #000000;">Layout is Main.xml</span></span></p></p><p><p></p></p><pre><pre><span style="color: #0000ff;"><?</span> <span style="color: #ff00ff;">XML version= "1.0" encoding= "utf-8"</span> <span style="color: #0000ff;">?></span> <span style="color: #0000ff;"><</span> <span style="color: #800000;"></span> <span style="color: #ff0000;">xmlns:android</span><span style="color: #0000ff;">= "http://schemas.android.com/apk/res/android"</span><span style="color: #ff0000;"> android:layout_ Width</span><span style="color: #0000ff;">= "match_parent"</span><span style="color: #ff0000;"> android:layout_height</span><span style="color: #0000ff;">= "match_parent"</span> <span style="color: #ff0000;"> Android:orientation</span><span style="color: #0000ff;">= "vertical"</span><span style="color: #0000ff;">></span><span style="color: #0000ff;"></</span><span style="color: #800000;">linearlayout</span><span style="color: #0000ff;">> </span></pre></pre><p><p></p></p><p><p>Not adding any controls</p></p><p><p></p></p><p><p>Mainactivity.java</p></p><pre><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">java.util.Calendar;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.support.v7.app.ActionBarActivity;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.DatePickerDialog;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.DatePickerDialog.OnDateSetListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.TimePickerDialog;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.app.TimePickerDialog.OnTimeSetListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.os.Bundle;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.Menu;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.view.MenuItem;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.DatePicker;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.DatePicker.OnDateChangedListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.TimePicker;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Import</span></span><span style="color: #000000;"><span style="color: #000000;">android.widget.TimePicker.OnTimeChangedListener;</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">class</span></span>Mainactivity<span style="color: #0000ff;"><span style="color: #0000ff;">extends</span></span><span style="color: #000000;"><span style="color: #000000;">actionbaractivity {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span><span style="color: #000000;"><span style="color: #000000;">Calendar cal; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;">year <span style="color: #000000;">, month, day; </span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Private</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">hour, minute; @Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">protected</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span><span style="color: #000000;"><span style="color: #000000;">onCreate (Bundle Savedinstancestate) {</span></span><span style="color: #0000ff;"><span style="color: #0000ff;">Super</span></span><span style="color: #000000;"><span style="color: #000000;">. OnCreate (savedinstancestate); Setcontentview (r.layout.main); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">get an object for a calendar</span></span>Cal =<span style="color: #000000;"><span style="color: #000000;">calendar.getinstance (); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">get information about days and seconds</span></span>Year =<span style="color: #000000;"><span style="color: #000000;">Cal.get (calendar.year); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">month is calculated starting from 0 (January month = 0)</span></span>month = Cal.get (calendar.month) +1<span style="color: #000000;"><span style="color: #000000;">; </span>day</span>=<span style="color: #000000;"><span style="color: #000000;">Cal.get (calendar.day_of_month); Hour</span></span>=<span style="color: #000000;"><span style="color: #000000;">Cal.get (calendar.hour_of_day); Minute</span></span>=<span style="color: #000000;"><span style="color: #000000;">Cal.get (calendar.minute); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">Set Title</span></span>Settitle (year+ "-" +month+ "-" +day+ "" +hour+ ":" +<span style="color: #000000;"><span style="color: #000000;">minute); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">dialog box form for calendar selector</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Datepickerdialog (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>,<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Ondatesetlistener () {@Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Ondateset (DatePicker view,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>Year<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>monthofyear,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">Dayofmonth) {settitle (</span> year</span>+ "-" + (monthofyear+1) + "-" +<span style="color: #000000;"><span style="color: #000000;">dayofmonth); }},year, cal.get (calendar.month), day). show (); </span></span><span style="color: #008000;"><span style="color: #008000;">//</span></span><span style="color: #008000;"><span style="color: #008000;">dialog form for time picker (last parameter is24hourview, 24-hour)</span></span> <span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span>Timepickerdialog (<span style="color: #0000ff;"><span style="color: #0000ff;"></span> this</span>,<span style="color: #0000ff;"><span style="color: #0000ff;">New</span></span><span style="color: #000000;"><span style="color: #000000;">Ontimesetlistener () {@Override</span></span><span style="color: #0000ff;"><span style="color: #0000ff;"></span> public</span> <span style="color: #0000ff;"><span style="color: #0000ff;">void</span></span>Ontimeset (timepicker view,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span>hourofday,<span style="color: #0000ff;"><span style="color: #0000ff;">int</span></span><span style="color: #000000;"><span style="color: #000000;">Minute) {settitle (hourofday</span></span>+":"+<span style="color: #000000;"><span style="color: #000000;">minute); }}, hour, minute</span> ,</span><span style="color: #0000ff;"><span style="color: #0000ff;">true</span></span><span style="color: #000000;"><span style="color: #000000;">). Show (); } }</span></span></pre><p><p>The Datepickerdialog and Timepickerdialog objects are created directly using anonymous classes, and are constructed in the following way</p></p><p><p>Public Datepickerdialog (context context, ondatesetlistener callBack, int year, int monthofyear, int Dayofmonth)</p></p><p><p>Public Timepickerdialog (context context, ontimesetlistener callBack, int hourofday, int minute, Boolean is24hourview)</p></p><p><p>Add listeners directly in the constructor using the anonymous inner class method, Is24hourview is a Boolean value that indicates whether the 24-hour system is Used.</p></p><p><p></p></p><p><p>Run</p></p><p><p></p></p><p><p></p></p><p><p></p></p><p><p>Summarize:</p></p><p><p><span style="color: #ff0000;">Note that the value obtained with Cal.get (calendar.month) is 1 smaller than the actual month value, and 1 is required at settitle, and should be passed in directly to the DatePicker initialization method and Datepickerdialog construction Method.</span></p></p><p><p><span style="color: #ff0000;">It is recommended that you write Cal.get (calendar.month) directly within these two methods and do not use the custom variable MONTH.</span></p></p><p><p></p></p><p><p>DatePicker and Timepicker usage in Android (including Datepickerdialog and Timepickerdialog)</p></p></span>