android防止设置时间,如何在Android日期选择器中禁用过去的日期?

这是我的方法:

public class DatePickerFragment extends DialogFragment {

OnDateSetListener ondateSet;

Calendar c;

int year = 0, month = 0, day = 0;

public DatePickerFragment() {

}

public void setCallBack(OnDateSetListener ondate) {

ondateSet = ondate;

}

public static DatePickerFragment newInstance(Bundle bundle) {

DatePickerFragment myFragment = new DatePickerFragment();

myFragment.setArguments(bundle);

return myFragment;

}

@Override

public Dialog onCreateDialog(Bundle savedInstanceState) {

// final Calendar c = Calendar.getInstance();

//if else for null arguments

if (getArguments() != null) {

year = getArguments().getInt("year");

month = getArguments().getInt("month");

day = getArguments().getInt("day");

c = Calendar.getInstance();

c.set(year, month, day);

} else {

c = Calendar.getInstance();

year = c.get(Calendar.YEAR);

month = c.get(Calendar.MONTH);

day = c.get(Calendar.DAY_OF_MONTH);

Log.d("else", "else");

}

DatePickerDialog picker = new DatePickerDialog(getActivity(),

ondateSet, year, month, day);

picker.getDatePicker().setMinDate(c.getTime().getTime());

Log.d("picker timestamp", c.getTime().getTime() + "");

return picker;

}

}

这是实例化选择器的方式:

Bundle bundle = new Bundle();

Calendar c = Calendar.getInstance();

bundle.putInt("year", c.get(Calendar.YEAR));

bundle.putInt("month", c.get(Calendar.MONTH));

bundle.putInt("day", c.get(Calendar.DAY_OF_MONTH));

DatePickerFragment fragment = DatePickerFragment

.newInstance(bundle);

fragment.setCallBack(dateSet);

fragment.show(getActivity().getSupportFragmentManager(), null);

这是我的实现随时更改它。请注意,默认情况下,此代码将mindate设置为当前日期。同样,newInstance很重要。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值