首页 > 代码库 > android 实现日期选择器
android 实现日期选择器
利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器。
Dialog的Content布局文件(date_time_dialog.xml):
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | <? 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 = "请选择日期" 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 = "请选择时间" 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 > |
代码中的实现:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | package com.easipass.test; import java.util.Calendar; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.text.InputType; import android.view.MotionEvent; import android.view.View; import android.widget.DatePicker; import android.widget.EditText; import android.widget.TimePicker; /** * 功能描述:实现日期时间选择器 * * @author android_ls */ public class DateTimeActivity extends Activity implements View.OnTouchListener { private EditText etStartTime; private EditText etEndTime; @Override public void onCreate(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 boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { AlertDialog.Builder builder = new AlertDialog.Builder( this ); View view = View.inflate( this , R.layout.date_time_dialog, null ); final DatePicker datePicker = (DatePicker) view.findViewById(R.id.date_picker); final TimePicker 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 int inType = etStartTime.getInputType(); etStartTime.setInputType(InputType.TYPE_NULL); etStartTime.onTouchEvent(event); etStartTime.setInputType(inType); etStartTime.setSelection(etStartTime.getText().length()); builder.setTitle( "选取起始时间" ); builder.setPositiveButton( "确 定" , new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { StringBuffer sb = new StringBuffer(); 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) { int inType = etEndTime.getInputType(); etEndTime.setInputType(InputType.TYPE_NULL); etEndTime.onTouchEvent(event); etEndTime.setInputType(inType); etEndTime.setSelection(etEndTime.getText().length()); builder.setTitle( "选取结束时间" ); builder.setPositiveButton( "确 定" , new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { StringBuffer sb = new StringBuffer(); 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 ; } } |
运行后的效果图:
点击EditTet之后
点击确定之后
转自:http://www.open-open.com/lib/view/open1364268229062.html
android 实现日期选择器
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。