Integer.parseInt抛出NumberFormatException?

时间:2012-09-05 11:00:32

标签: android datepicker

我在我的应用程序中使用了Datepicker。我想要做的是获取已在文本字段中设置的日期并在Datepicker控件上显示该日期。但是当我使用

时,我得到NumberFormatException
Integer.parseInt(splittedDate[2])  //i.e the year column. 

当我看到调试splittedDate时包含三个值很好的值。但是在解析最后一个索引的年份列时抛出异常。我无法理解为什么会这样。请帮帮我吧。以下是Datepicker的CreateDialog方法的实现。

@Override
protected Dialog onCreateDialog(int id) {
    if (id == DATE_DIALOG_ID) {
        if (birthDate.getText().toString().equalsIgnoreCase(""))
            return new DatePickerDialog(this, mDateSetListener, mYear,
                    mMonth, mDay);
        else {
            String[] splittedDate = birthDate.getText().toString().split("-");

            try{

                Log.i("Month String", splittedDate[0]);
                mMonth = Integer.parseInt(splittedDate[0]);
                Log.i("Day String", splittedDate[1]);
                mDay = Integer.parseInt(splittedDate[1]);
                Log.i("Year String", splittedDate[0]);
                mYear = Integer.parseInt(splittedDate[2]);

            }
            catch(Exception e)
            {
                Log.e("Number Format Exception Message: ",e.getMessage());
            }

            return new DatePickerDialog(this, mDateSetListener, mYear,
                    mMonth, mDay);

        }

    return null;
}

这是logCat信息:

 09-05 16:21:54.722: E/AndroidRuntime(28596): FATAL EXCEPTION: main
 09-05 16:21:54.722: E/AndroidRuntime(28596): java.lang.NumberFormatException: unable to parse '1970 ' as integer
 09-05 16:21:54.722: E/AndroidRuntime(28596):   at java.lang.Integer.parse(Integer.java:383)
 09-05 16:21:54.722: E/AndroidRuntime(28596):   at java.lang.Integer.parseInt(Integer.java:372)
 09-05 16:21:54.722: E/AndroidRuntime(28596):   at java.lang.Integer.parseInt(Integer.java:332)
 09-05 16:21:54.722: E/AndroidRuntime(28596):   at com.test.project.activity.DetailActivity.onCreateDialog(DetailActivity.java:332)

2 个答案:

答案 0 :(得分:1)

试试这个

Integer.parseInt(splittedDate[2].toString())

答案 1 :(得分:0)

发布您在birthDate字段中插入值的代码。检查是否应该有blank spaces。应该只有数字。从例外情况来看,'1970 '似乎包含一个空格。仔细检查birthDate字段..