android 横向滑动日期_Android滑动选择的日期选择框

packagecom.example.doubledatepicker;importjava.lang.reflect.Field;importandroid.app.AlertDialog;importandroid.content.Context;importandroid.content.DialogInterface;importandroid.content.DialogInterface.OnClickListener;importandroid.os.Bundle;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.widget.DatePicker;importandroid.widget.DatePicker.OnDateChangedListener;public class DoubleDatePickerDialog extends AlertDialog implementsOnClickListener, OnDateChangedListener {private static final String START_YEAR = "start_year";private static final String END_YEAR = "end_year";private static final String START_MONTH = "start_month";private static final String END_MONTH = "end_month";private static final String START_DAY = "start_day";private static final String END_DAY = "end_day";private final DatePicker mDatePicker_start; //开始

private finalOnDateSetListener mCallBack;public interfaceOnDateSetListener {void onDateSet(DatePicker startDatePicker, int startYear, int startMonthOfYear, intstartDayOfMonth);

}public DoubleDatePickerDialog(Context context, OnDateSetListener callBack, int year, int monthOfYear, intdayOfMonth) {this(context, 0, callBack, year, monthOfYear, dayOfMonth);

}public DoubleDatePickerDialog(Context context, int theme, OnDateSetListener callBack, int year, intmonthOfYear,intdayOfMonth) {this(context, 0, callBack, year, monthOfYear, dayOfMonth, true);

}public DoubleDatePickerDialog(Context context, int theme, OnDateSetListener callBack, int year, intmonthOfYear,int dayOfMonth, booleanisDayVisible) {super(context, theme);

mCallBack=callBack;

Context themeContext=getContext();

setButton(BUTTON_POSITIVE,"确 定", this);

setButton(BUTTON_NEGATIVE,"取 消", this);

setIcon(0);

LayoutInflater inflater=(LayoutInflater) themeContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

View view= inflater.inflate(R.layout.date_picker_dialog, null);

setView(view);

mDatePicker_start=(DatePicker) view.findViewById(R.id.datePickerStart);

mDatePicker_start.init(year, monthOfYear, dayOfMonth,this);if (!isDayVisible) {

hidDay(mDatePicker_start);

}

}/*** 隐藏DatePicker中的日期显示

*

*@parammDatePicker*/

private voidhidDay(DatePicker mDatePicker) {

Field[] datePickerfFields=mDatePicker.getClass().getDeclaredFields();for(Field datePickerField : datePickerfFields) {if ("mDaySpinner".equals(datePickerField.getName())) {

datePickerField.setAccessible(true);

Object dayPicker= newObject();try{

dayPicker=datePickerField.get(mDatePicker);

}catch(IllegalAccessException e) {

e.printStackTrace();

}catch(IllegalArgumentException e) {

e.printStackTrace();

}

((View) dayPicker).setVisibility(View.GONE);

}

}

}public void onClick(DialogInterface dialog, intwhich) {if (which ==BUTTON_POSITIVE)

tryNotifyDateSet();

}

@Overridepublic void onDateChanged(DatePicker view, int year, int month, intday) {if (view.getId() ==R.id.datePickerStart)

mDatePicker_start.init(year, month, day,this);

}/*** 获得开始日期的DatePicker

*

*@returnThe calendar view.*/

publicDatePicker getDatePickerStart() {returnmDatePicker_start;

}public void updateStartDate(int year, int monthOfYear, intdayOfMonth) {

mDatePicker_start.updateDate(year, monthOfYear, dayOfMonth);

}public void updateEndDate(int year, int monthOfYear, intdayOfMonth) {

}private voidtryNotifyDateSet() {if (mCallBack != null) {

mDatePicker_start.clearFocus();

mCallBack.onDateSet(mDatePicker_start, mDatePicker_start.getYear(), mDatePicker_start.getMonth(),

mDatePicker_start.getDayOfMonth());

}

}

@Overrideprotected voidonStop() {super.onStop();

}

@OverridepublicBundle onSaveInstanceState() {

Bundle state= super.onSaveInstanceState();

state.putInt(START_YEAR, mDatePicker_start.getYear());

state.putInt(START_MONTH, mDatePicker_start.getMonth());

state.putInt(START_DAY, mDatePicker_start.getDayOfMonth());returnstate;

}

@Overridepublic voidonRestoreInstanceState(Bundle savedInstanceState) {super.onRestoreInstanceState(savedInstanceState);int start_year =savedInstanceState.getInt(START_YEAR);int start_month =savedInstanceState.getInt(START_MONTH);int start_day =savedInstanceState.getInt(START_DAY);

mDatePicker_start.init(start_year, start_month, start_day,this);int end_year =savedInstanceState.getInt(END_YEAR);int end_month =savedInstanceState.getInt(END_MONTH);int end_day =savedInstanceState.getInt(END_DAY);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值