Use the DatePicker (date selector) and Timepicker (Time picker) provided by the Android app framework to implement a date-time selector.
Dialog content layout file (date_time_dialog.xml):
<?xml version= "1.0" encoding= "Utf-8"? ><linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android"Android:layout_width= "Fill_parent"Android:layout_height= "Fill_parent"android:orientation= "Vertical"android:padding= "10dip" > <TextView android:layout_width= "Fill_parent"Android:layout_height= "Wrap_content"Android:singleline= "true"Android:text= "Please select Date"Android:textcolor= "#FFFFFF"android:textsize= "16sp"/> <DatePicker Android:id= "@+id/date_picker"Android:layout_width= "Wrap_content"Android:layout_height= "Wrap_content"Android:layout_margintop= "5dip"/> <TextView android:layout_width= "Fill_parent"Android:layout_height= "Wrap_content"Android:layout_margintop= "10dip"Android:singleline= "true"Android:text= "Please select Time"Android:textcolor= "#FFFFFF"android:textsize= "16sp"/> <Timepicker Android:id= "@+id/time_picker"Android:layout_width= "Wrap_content"Android:layout_height= "Wrap_content"Android:layout_margintop= "5dip"/></linearlayout>
Implementation in the code:
Packagecom.easipass.test;ImportJava.util.Calendar;Importandroid.app.Activity;ImportAndroid.app.AlertDialog;ImportAndroid.app.Dialog;ImportAndroid.content.DialogInterface;ImportAndroid.os.Bundle;ImportAndroid.text.InputType;Importandroid.view.MotionEvent;ImportAndroid.view.View;ImportAndroid.widget.DatePicker;ImportAndroid.widget.EditText;ImportAndroid.widget.TimePicker;/*** Function Description: Implement date Time picker * *@authorAndroid_ls*/ Public classDatetimeactivityextendsActivityImplementsView.ontouchlistener {PrivateEditText Etstarttime; PrivateEditText Etendtime; @Override Public voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (R.layout.main); Etstarttime= (EditText) This. Findviewbyid (R.id.et_start_time); Etendtime= (EditText) This. Findviewbyid (R.id.et_end_time); Etstarttime.setontouchlistener ( This); Etendtime.setontouchlistener ( This); } @Override Public BooleanOnTouch (View V, motionevent event) {if(event.getaction () = =Motionevent.action_down) {Alertdialog.builder Builder=NewAlertdialog.builder ( This); View View= View.inflate ( This, R.layout.date_time_dialog,NULL); FinalDatePicker DatePicker =(DatePicker) View.findviewbyid (R.id.date_picker); FinalTimepicker Timepicker =(Android.widget.TimePicker) View.findviewbyid (R.id.time_picker); Builder.setview (view); Calendar Cal=calendar.getinstance (); Cal.settimeinmillis (System.currenttimemillis ()); Datepicker.init (Cal.get (calendar.year), Cal.get (Calendar.month), Cal.get (Calendar.day_of_month) ,NULL); Timepicker.setis24hourview (true); Timepicker.setcurrenthour (Cal.get (calendar.hour_of_day)); Timepicker.setcurrentminute (Calendar.minute); if(V.getid () = =r.id.et_start_time) { Final intIntype =Etstarttime.getinputtype (); Etstarttime.setinputtype (Inputtype.type_null); Etstarttime.ontouchevent (event); Etstarttime.setinputtype (Intype); Etstarttime.setselection (Etstarttime.gettext (). Length ()); Builder.settitle ("Pick Start Time"); Builder.setpositivebutton ("OK",NewDialoginterface.onclicklistener () {@Override Public voidOnClick (Dialoginterface Dialog,intwhich) {StringBuffer SB=NewStringBuffer (); Sb.append (String.Format ("%d-%02d-%02d", Datepicker.getyear (), Datepicker.getmonth ()+ 1, Datepicker.getdayofmonth ())); Sb.append (" "); Sb.append (Timepicker.getcurrenthour ()). Append (":"). Append (Timepicker.getcurrentminute ()); Etstarttime.settext (SB); Etendtime.requestfocus (); Dialog.cancel (); } }); } Else if(V.getid () = =r.id.et_end_time) { intIntype =Etendtime.getinputtype (); Etendtime.setinputtype (Inputtype.type_null); Etendtime.ontouchevent (event); Etendtime.setinputtype (Intype); Etendtime.setselection (Etendtime.gettext (). Length ()); Builder.settitle ("Pick End Time"); Builder.setpositivebutton ("OK",NewDialoginterface.onclicklistener () {@Override Public voidOnClick (Dialoginterface Dialog,intwhich) {StringBuffer SB=NewStringBuffer (); Sb.append (String.Format ("%d-%02d-%02d", Datepicker.getyear (), Datepicker.getmonth ()+ 1, Datepicker.getdayofmonth ())); Sb.append (" "); Sb.append (Timepicker.getcurrenthour ()). Append (":"). Append (Timepicker.getcurrentminute ()); Etendtime.settext (SB); Dialog.cancel (); } }); } Dialog Dialog=builder.create (); Dialog.show (); } return true; } }
After the run:
After clicking Edittet
After clicking OK
http://blog.csdn.net/android_ls/article/details/8644067
Implement date-time selectors in Android (DatePicker and Timepicker)