同时选择日期和时间的对话框DateTimePickDialog
来源:互联网 发布:标准差 知乎 编辑:程序博客网 时间:2024/06/05 05:13
1.布局文件res/layout/comm_datetime.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="wrap_content" android:gravity="center" android:orientation="vertical" > <DatePicker android:id="@+id/datepicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:calendarViewShown="false" android:datePickerMode="spinner" android:descendantFocusability="blocksDescendants" /> <TimePicker android:id="@+id/timepicker" android:layout_width="wrap_content" android:layout_height="wrap_content" android:timePickerMode="spinner" /></LinearLayout>
2.日期时间选择器类DateTimePickDialog.java
import java.util.Calendar;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.view.LayoutInflater;import android.view.View;import android.widget.DatePicker;import android.widget.Toast;import android.widget.DatePicker.OnDateChangedListener;import android.widget.TimePicker;import android.widget.TimePicker.OnTimeChangedListener;public class DateTimePickDialog implements OnDateChangedListener, OnTimeChangedListener { private Context mContext; private DatePicker dp; private TimePicker tp; private int year; private int monthOfYear; private int dayOfMonth; private int hourOfDay; private int minute; private Calendar c; private OnDateTimeSetListener mListener; public DateTimePickDialog(Context context, Calendar c) { this.mContext = context; this.c = c; year = c.get(Calendar.YEAR); monthOfYear = c.get(Calendar.MONTH); dayOfMonth = c.get(Calendar.DAY_OF_MONTH); hourOfDay = c.get(Calendar.HOUR_OF_DAY); minute = c.get(Calendar.MINUTE); init(); } private void init() { View view = LayoutInflater.from(mContext).inflate( R.layout.comm_datetime, null); dp = (DatePicker) view.findViewById(R.id.datepicker); tp = (TimePicker) view.findViewById(R.id.timepicker); dp.init(year, monthOfYear, dayOfMonth, this); tp.setCurrentHour(hourOfDay); tp.setCurrentMinute(minute); tp.setOnTimeChangedListener(this); AlertDialog.Builder b = new AlertDialog.Builder(mContext); b.setTitle("请选择时间"); b.setView(view); //点击确定,回调数据 b.setPositiveButton("确定", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Toast.makeText( mContext, "" + year + "-" + (monthOfYear + 1) + "-" + dayOfMonth + " " + hourOfDay + ":" + minute, Toast.LENGTH_SHORT).show(); if (null != mListener) { mListener.onDateTimeSet(dp, tp, year, monthOfYear, dayOfMonth, hourOfDay, minute); } } }); //取消后恢复原来选择的时间 b.setNegativeButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub if (null != mListener) { mListener.onDateTimeSet(dp, tp, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH), c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)); } } }); b.create().show(); } @Override public void onTimeChanged(TimePicker view, int hourOfDay, int minute) { // TODO Auto-generated method stub this.tp = view; this.hourOfDay = hourOfDay; this.minute = minute; } @Override public void onDateChanged(DatePicker view, int year, int monthOfYear, int dayOfMonth) { // TODO Auto-generated method stub this.dp = view; this.year = year; this.monthOfYear = monthOfYear; } public void setOnDateTimeSetListener(OnDateTimeSetListener listener) { this.mListener = listener; } public interface OnDateTimeSetListener { void onDateTimeSet(DatePicker dp, TimePicker tp, int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minute); }}
3.程序中使用:
new DateTimePickDialog(DialogTest.this,c).setOnDateTimeSetListener(new OnDateTimeSetListener() {//给定Calendar c,就能将日期和时间进行初始化 @Override public void onDateTimeSet(DatePicker dp, TimePicker tp, int year, int monthOfYear, int dayOfMonth, int hourOfDay, int minute) { // 保存选择后时间 c.set(Calendar.YEAR, year); c.set(Calendar.MONTH, monthOfYear); c.set(Calendar.DAY_OF_MONTH, dayOfMonth); c.set(Calendar.HOUR_OF_DAY, hourOfDay); c.set(Calendar.MINUTE, minute); } });
0 0
- 同时选择日期和时间的对话框DateTimePickDialog
- DateTimePickDialog日期选择控件
- 日期和时间选择对话框
- WheelView 实现 日期和时间同时选择
- 日期、时间选择对话框
- 日期、时间选择对话框
- 日期与时间选择对话框的实现
- 日期及时间选择对话框
- Android日期时间选择对话框
- android时间日期选择对话框
- 使用DatePickerDialog和TimePickerDialog实现日期和时间选择对话框
- 19. android dialog —— 日期和时间选择对话框
- 时间对话框的使用和日期对话框的使用
- Mysql日期和时间类型的选择
- 创建日期及时间选择对话框
- Android 日期及时间选择对话框
- Android之日期及时间选择对话框
- Android之日期/时间选择对话框
- HttpURLConnection post解析
- java至今所学的关键词
- ssh登录缓慢
- sql Server Profiler (sql2005为列)
- web测试方法总结
- 同时选择日期和时间的对话框DateTimePickDialog
- 宏定义详解
- UML类图几种关系的总结
- 深入分析Android native exception框架---native编译
- 练手项目的小问题
- Linux用户管理
- 《OpenCV3编程入门》学习笔记五:core组件进阶
- Android四大基本组件介绍与生命周期
- WPF学习笔记:(一)数据绑定与DataContext