利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器。

Dialog的Content布局文件(date_time_dialog.xml):

<?xml version="1.0" encoding="utf-8"?>                                           

代码中的实现:

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;      }         }


运行后的效果图:



点击确定之后




URL:http://www.open-open.com/lib/view/open1364268229062.html

更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. python list.sort()根据多个关键字排序的方法实现
  3. Android通过手势实现图像拖拽功能
  4. 实现能定点移动的seekbar
  5. 判断Android系统时间是否是24小时制
  6. Android接入OpenCv实现人脸识别
  7. Android给View画边框
  8. 四十七、实现调用Android手机的拍照功能
  9. Android—构建安全的Android客户端请求,避免非法请求

随机推荐

  1. Android各版本代号和API级别对照表
  2. android Sqlitedatabase 应用
  3. Android输入法扩展之外接键盘中文输入
  4. CheckBox 设置style 没有效果的原因
  5. [置顶] Android学习记录(6)—将java中的多
  6. Android靠哪些东西能打败iphone
  7. Android 获取View的位置参数:x,y和相对父
  8. 解剖Android USB MTP 的激活流程
  9. cocos2dx 中 Android(安卓)NDK 加载动态
  10. android SDK 源码 -----建造这模式(生成器