时间日期滚动选择控件(修改版)
来源:互联网 发布:p2p按天返利的理财源码 编辑:程序博客网 时间:2024/05/30 19:33
之前有发过一个选择控件的demo,有点小Bug,现在已经修复,喜欢的朋友可以去下载:http://download.csdn.net/detail/aiyuan0204/7062347
package com.ycf.blog_05_chinesechoosedemo.datedialog;import java.util.Calendar;import com.ycf.blog_05_chinesechoosedemo.R;import android.content.Context;import android.text.format.DateFormat;import android.widget.FrameLayout;import android.widget.NumberPicker;import android.widget.NumberPicker.OnValueChangeListener;public class DateTimePicker extends FrameLayout{private final NumberPicker mDateSpinner;private final NumberPicker mHourSpinner;private final NumberPicker mMinuteSpinner;private Calendar mDate; private int mHour,mMinute; private String[] mDateDisplayValues = new String[7]; private OnDateTimeChangedListener mOnDateTimeChangedListener; public DateTimePicker(Context context){ super(context); mDate = Calendar.getInstance(); mHour=mDate.get(Calendar.HOUR_OF_DAY); mMinute=mDate.get(Calendar.MINUTE); inflate(context, R.layout.datedialog, this); mDateSpinner=(NumberPicker)this.findViewById(R.id.np_date); mDateSpinner.setMinValue(0); mDateSpinner.setMaxValue(6); updateDateControl(); mDateSpinner.setOnValueChangedListener(mOnDateChangedListener); mHourSpinner=(NumberPicker)this.findViewById(R.id.np_hour); mHourSpinner.setMaxValue(23); mHourSpinner.setMinValue(0); mHourSpinner.setValue(mHour); mHourSpinner.setOnValueChangedListener(mOnHourChangedListener); mMinuteSpinner=(NumberPicker)this.findViewById(R.id.np_minute); mMinuteSpinner.setMaxValue(59); mMinuteSpinner.setMinValue(0); mMinuteSpinner.setValue(mMinute); mMinuteSpinner.setOnValueChangedListener(mOnMinuteChangedListener);} private NumberPicker.OnValueChangeListener mOnDateChangedListener=new OnValueChangeListener(){@Overridepublic void onValueChange(NumberPicker picker, int oldVal, int newVal){mDate.add(Calendar.DAY_OF_MONTH, newVal - oldVal);updateDateControl();onDateTimeChanged();}}; private NumberPicker.OnValueChangeListener mOnHourChangedListener=new OnValueChangeListener(){@Overridepublic void onValueChange(NumberPicker picker, int oldVal, int newVal){mHour=mHourSpinner.getValue();onDateTimeChanged();}}; private NumberPicker.OnValueChangeListener mOnMinuteChangedListener=new OnValueChangeListener(){@Overridepublic void onValueChange(NumberPicker picker, int oldVal, int newVal){mMinute=mMinuteSpinner.getValue();onDateTimeChanged();}};private void updateDateControl() { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(mDate.getTimeInMillis()); cal.add(Calendar.DAY_OF_YEAR, -7 / 2 - 1); mDateSpinner.setDisplayedValues(null); for (int i = 0; i < 7; ++i) { cal.add(Calendar.DAY_OF_YEAR, 1); mDateDisplayValues[i] = (String) DateFormat.format("MM.dd EEEE", cal); } mDateSpinner.setDisplayedValues(mDateDisplayValues); mDateSpinner.setValue(7 / 2); mDateSpinner.invalidate(); } public interface OnDateTimeChangedListener { void onDateTimeChanged(DateTimePicker view, int year, int month, int day,int hour,int minute); } public void setOnDateTimeChangedListener(OnDateTimeChangedListener callback) { mOnDateTimeChangedListener = callback; } private void onDateTimeChanged() { if (mOnDateTimeChangedListener != null) { mOnDateTimeChangedListener.onDateTimeChanged(this, mDate.get(Calendar.YEAR), mDate.get(Calendar.MONTH), mDate.get(Calendar.DAY_OF_MONTH),mHour, mMinute); } }}
package com.ycf.blog_05_chinesechoosedemo.datedialog;import java.util.Calendar;import com.ycf.blog_05_chinesechoosedemo.datedialog.DateTimePicker.OnDateTimeChangedListener;import android.app.AlertDialog;import android.content.Context;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.text.format.DateUtils;public class DateTimePickerDialog extends AlertDialog implements OnClickListener{ private DateTimePicker mDateTimePicker; private Calendar mDate = Calendar.getInstance(); private OnDateTimeSetListener mOnDateTimeSetListener; @SuppressWarnings("deprecation")public DateTimePickerDialog(Context context, long date) {super(context);mDateTimePicker = new DateTimePicker(context); setView(mDateTimePicker); mDateTimePicker.setOnDateTimeChangedListener(new OnDateTimeChangedListener(){@Overridepublic void onDateTimeChanged(DateTimePicker view, int year, int month, int day, int hour, int minute){mDate.set(Calendar.YEAR, year); mDate.set(Calendar.MONTH, month); mDate.set(Calendar.DAY_OF_MONTH, day); mDate.set(Calendar.HOUR_OF_DAY, hour); mDate.set(Calendar.MINUTE, minute); mDate.set(Calendar.SECOND, 0); updateTitle(mDate.getTimeInMillis());}}); setButton("设置", this); setButton2("取消", (OnClickListener)null); mDate.setTimeInMillis(date); updateTitle(mDate.getTimeInMillis()); }public interface OnDateTimeSetListener { void OnDateTimeSet(AlertDialog dialog, long date); }private void updateTitle(long date) { int flag = DateUtils.FORMAT_SHOW_YEAR | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_WEEKDAY| DateUtils.FORMAT_SHOW_TIME; setTitle(DateUtils.formatDateTime(this.getContext(), date, flag)); }public void setOnDateTimeSetListener(OnDateTimeSetListener callBack) { mOnDateTimeSetListener = callBack; } public void onClick(DialogInterface arg0, int arg1) { if (mOnDateTimeSetListener != null) { mOnDateTimeSetListener.OnDateTimeSet(this, mDate.getTimeInMillis()); } }}
0 0
- 时间日期滚动选择控件(修改版)
- Android 滚动的时间日期选择控件
- 日期时间选择控件
- 时间日期选择控件
- 日期时间选择控件
- MxxCalendar 日期时间选择控件
- Extjs4 日期+时间选择控件
- Javascript 日期 时间 选择控件
- 时间日期选择控件DateTimePicker
- 自定义时间选择控件(仿ios滚动效果)
- JS弹出日期控件升级版(带时间选择)
- 自定义控件之DataGridView列(日期时间选择列)
- 自定义控件之DataGridView列(日期时间选择列)
- ExtJs日期时间选择控件(精确到秒)
- ExtJs日期时间选择控件(精确到秒)
- ExtJs日期控件案例(可控制时间的选择)
- ExtJs日期时间选择控件(精确到秒)
- EXTJS日期时间选择控件(精确到秒)
- 黑马程序员-java IO笔记(2)
- Java判断IP在属于ip段
- android中ListView拖动时背景黑色的问题
- 输出IOS设备的字体列表
- 基于能量模型的RBM
- 时间日期滚动选择控件(修改版)
- MFC GDI绘图
- Spring MVC 基础教程,快速入门,深入分析
- poj 1926 Pollution 并查集解决污染计算问题
- UVa 10653 - Bombs! NO they are Mines!!
- 20个非常有用的Java功能代码
- ASP.NET FileUpload不经保存,直接读取上传文件的内容
- 心态,精力
- CCMenu的创建