如何在android中动态设置时间选择器最小值和最大值?

时间:2014-06-09 04:55:16

标签: android android-dialogfragment android-timepicker

我有时间选择器,我想动态设置时间选择器最小值和最大值例如:将当前时间加上2:30小时作为最小值,最大值是11:00 pm。

Timepicker对话

public class Time_picker extends DialogFragment{

OnTimeSetListener ontimeSet;

int minHour;
int minMinute;

private int maxHour = 24;
private int maxMinute =00;
DateFormat dateFormat;
public Time_picker() {

}

public void setCallBack(OnTimeSetListener ontime) {

    ontimeSet = ontime;

}

private int hours, minutes;
@Override
public void setArguments(Bundle args) {
    super.setArguments(args);
    hours = args.getInt("hours");
    minutes = args.getInt("minute");

    minHour = hours;//current time plus 2:30hrs
    minMinute = -1;
}

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {

    TimePickerDialog _time = new TimePickerDialog(getActivity(), ontimeSet, hours, minutes,false){

        @Override
        public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
            // TODO Auto-generated method stub

            try{
                boolean validTime;
                if(hourOfDay < minHour) {
                    validTime = false;
                }
                else if(hourOfDay == minHour) {
                    validTime = minute >= minMinute;
                }
                else if(hourOfDay == maxHour) {
                    validTime = minute <= maxMinute;
                }
                else {
                    validTime = true;
                }

                if(validTime) {
                    hours = hourOfDay;
                    minutes = minute;
                }
                else {
                    updateTime(hours, minutes);
                }

            }catch(Exception e){

            }
        }
    };
    return _time;
}
}

有一段时间它正好显示加2:30小时正确,但到时间它显示1小时回到时间picker.am无法找出问题。任何人都知道帮助我解决这个问题。

0 个答案:

没有答案
相关问题