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

Dialog的Content布局文件(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="请选择日期"        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>

代码中的实现:

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之后

点击确定之后


更多相关文章

  1. 浅谈Java中Collections.sort对List排序的两种方法
  2. python list.sort()根据多个关键字排序的方法实现
  3. Android(安卓)Debug Bridge(ADB) 技术实现
  4. Android访问WCF服务(使用json实现参数传递)
  5. Android下图片可拖动到任意位置的效果的实现源码
  6. 实现Android(安卓)滑动退出Activity的功能
  7. android中实现截屏的三种思路
  8. android之实现各个组件点击事件处理
  9. Android实现图片帮助跳转以及选择重拍Sqlite本地保存

随机推荐

  1. android对象池之Message
  2. AIDL跨进程通信的使用
  3. Android/OPhone开发完全讲义
  4. Android(安卓)菜单(OptionMenu)大全 建立
  5. 简单android环境搭建,xp系统
  6. listView透明背
  7. android
  8. 【转载】Android事件分发机制完全解析,带
  9. android ListView几个比较特别的属性
  10. 类似HTML map标签功能的Android组件