java.lang.IllegalArgumentException:如果电流应与GT; =启动和< =结束 [英] java.lang.IllegalArgumentException: current should be >= start and <= end

查看:104
本文介绍了java.lang.IllegalArgumentException:如果电流应与GT; =启动和< =结束的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想实现在Android的一个按钮,日期选择器。但是当我点击该按钮错误弹出。但是,时间选择器运行正常。这里的code:

  mPickDate.setOnClickListener(新View.OnClickListener(){//分配onClickListener到日期按钮
        公共无效的onClick(视图v){
            的ShowDialog(DATE_DIALOG_ID);
            }
    });

    pickTime.setOnClickListener(新View.OnClickListener(){//分配onClickListener到计时按钮

        @覆盖
        公共无效的onClick(视图v){
            的ShowDialog(TIME_DIALOG_ID);

        }
    });
    }

    @覆盖
    受保护的对话框onCreateDialog(INT ID){//重写onCreateDialog()
        开关(ID){
        案例DATE_DIALOG_ID:
            返回新DatePickerDialog(这一点,mDateSetListener,mYear,mMonth,MDAY);
        案例TIME_DIALOG_ID:
            返回新TimePickerDialog(这一点,mTimeSetListener,mHour,MMIN,真正的);

        }
        返回null;
    }

    TimePickerDialog.OnTimeSetListener mTimeSetListener =新TimePickerDialog.OnTimeSetListener(){//定义TimePickerDialog引用变量

        @覆盖
        公共无效onTimeSet(TimePicker观点,诠释hourOfDay,INT分钟){
            mHour = hourOfDay;
            MMIN =分钟;
            录入();
        }
    };

    DatePickerDialog.OnDateSetListener mDateSetListener = //定义DatePickerDialog引用变量
        新DatePickerDialog.OnDateSetListener(){

            公共无效onDateSet(DatePicker的观点,年整型,
                                  INT monthOfYear,诠释DAYOFMONTH){
                mYear =年;
                mMonth = monthOfYear;
                MDAY = DAYOFMONTH;
                updateDisplay();
            }
        };
 

这里的logcat的:

  10-13 16:41:46.878:ERROR / AndroidRuntime(761):致命异常:主要
10-13 16:41:46.878:ERROR / AndroidRuntime(761):java.lang.IllegalArgumentException:如果电流应与GT; =启动和< =结束
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.widget.NumberPicker.setCurrent(NumberPicker.java:288)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.widget.DatePicker.updateDaySpinner(DatePicker.java:370)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.widget.DatePicker.updateSpinners(DatePicker.java:356)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.widget.DatePicker.init(DatePicker.java:352)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.app.DatePickerDialog< INIT>(DatePickerDialog.java:127)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.app.DatePickerDialog< INIT>(DatePickerDialog.java:86)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在acb.xiynove.OfflineScreen_ACBActivity.onCreateDialog(OfflineScreen_ACBActivity.java:74)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.app.Activity.onCreateDialog(Activity.java:2482)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.app.Activity.createDialog(Activity.java:882)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.app.Activity.showDialog(Activity.java:2557)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.app.Activity.showDialog(Activity.java:2524)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在acb.xiynove.OfflineScreen_ACBActivity $ 3.onClick(OfflineScreen_ACBActivity.java:56)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.view.View.performClick(View.java:2485)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.view.View $ PerformClick.run(View.java:9080)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.os.Handler.handleCallback(Handler.java:587)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.os.Handler.dispatchMessage(Handler.java:92)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.os.Looper.loop(Looper.java:123)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在android.app.ActivityThread.main(ActivityThread.java:3683)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在java.lang.reflect.Method.invokeNative(本机方法)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在java.lang.reflect.Method.invoke(Method.java:507)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-13 16:41:46.878:ERROR / AndroidRuntime(761):在dalvik.system.NativeStart.main(本机方法)
 

解决方案

我有同样的问题,但我发现的解决方案。你应该初始化 mYear,mMonth,MDAY

  //初始化这个变量,如你所愿,例如:
私人诠释mYear = 2010;
私人诠释mMonth = 11;
私人诠释MDAY = 1;
@覆盖
受保护的对话框onCreateDialog(INT ID){//重写onCreateDialog()
    开关(ID){
    案例DATE_DIALOG_ID:
        返回新DatePickerDialog(这一点,mDateSetListener,mYear,mMonth,MDAY);
    案例TIME_DIALOG_ID:
        返回新TimePickerDialog(这一点,mTimeSetListener,mHour,MMIN,真正的);

    }
    返回null;
}
 

I am trying to implement date picker on a button in android. But as soon as i click on the button error pops up. But time picker runs fine. Here's the code:

mPickDate.setOnClickListener(new View.OnClickListener() {       //Assigning onClickListener to Date Button                                                                  
        public void onClick(View v) {
            showDialog(DATE_DIALOG_ID);
            }    
    });

    pickTime.setOnClickListener(new View.OnClickListener() {        //Assigning onClickListener to Time Button

        @Override
        public void onClick(View v) {
            showDialog(TIME_DIALOG_ID);

        }
    });
    }

    @Override
    protected Dialog onCreateDialog(int id) {                       //Overriding onCreateDialog()
        switch (id) {
        case DATE_DIALOG_ID:
            return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
        case TIME_DIALOG_ID:
            return new TimePickerDialog(this,mTimeSetListener,mHour,mMin,true);

        }
        return null;
    }

    TimePickerDialog.OnTimeSetListener mTimeSetListener = new TimePickerDialog.OnTimeSetListener() {        //Defining the TimePickerDialog reference variable

        @Override
        public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
            mHour=hourOfDay;
            mMin= minute;
            updateTime();
        }
    };

    DatePickerDialog.OnDateSetListener mDateSetListener =                       //Defining the DatePickerDialog reference variable
        new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, 
                                  int monthOfYear, int dayOfMonth) {
                mYear = year;
                mMonth = monthOfYear;
                mDay = dayOfMonth;
                updateDisplay();
            }
        };        

Here's the logcat:

10-13 16:41:46.878: ERROR/AndroidRuntime(761): FATAL EXCEPTION: main
10-13 16:41:46.878: ERROR/AndroidRuntime(761): java.lang.IllegalArgumentException: current should be >= start and <= end
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.widget.NumberPicker.setCurrent(NumberPicker.java:288)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.widget.DatePicker.updateDaySpinner(DatePicker.java:370)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.widget.DatePicker.updateSpinners(DatePicker.java:356)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.widget.DatePicker.init(DatePicker.java:352)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.app.DatePickerDialog.<init>(DatePickerDialog.java:127)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.app.DatePickerDialog.<init>(DatePickerDialog.java:86)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at acb.xiynove.OfflineScreen_ACBActivity.onCreateDialog(OfflineScreen_ACBActivity.java:74)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.app.Activity.onCreateDialog(Activity.java:2482)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.app.Activity.createDialog(Activity.java:882)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.app.Activity.showDialog(Activity.java:2557)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.app.Activity.showDialog(Activity.java:2524)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at acb.xiynove.OfflineScreen_ACBActivity$3.onClick(OfflineScreen_ACBActivity.java:56)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.view.View.performClick(View.java:2485)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.view.View$PerformClick.run(View.java:9080)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.os.Handler.handleCallback(Handler.java:587)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.os.Handler.dispatchMessage(Handler.java:92)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.os.Looper.loop(Looper.java:123)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at android.app.ActivityThread.main(ActivityThread.java:3683)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at java.lang.reflect.Method.invokeNative(Native Method)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at java.lang.reflect.Method.invoke(Method.java:507)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-13 16:41:46.878: ERROR/AndroidRuntime(761):     at dalvik.system.NativeStart.main(Native Method)

解决方案

I've got the same problem but I found solution. You should initialize mYear,mMonth,mDay:

//Init this variables as you wish eg.:
private int mYear = 2010;
private int mMonth = 11;
private int mDay =1;
@Override
protected Dialog onCreateDialog(int id) {                       //Overriding onCreateDialog()
    switch (id) {
    case DATE_DIALOG_ID:
        return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
    case TIME_DIALOG_ID:
        return new TimePickerDialog(this,mTimeSetListener,mHour,mMin,true);

    }
    return null;
}

这篇关于java.lang.IllegalArgumentException:如果电流应与GT; =启动和&lt; =结束的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆