2012-07-30 2 views
1

Я использую уровень API 10, я не хочу использовать библиотеки поддержки только для того, чтобы реализовать DatePicker, поэтому я использую следующий подход для создания Диалога даты. Я использовал один DatePicker раньше, и он работал нормально. Я просто не могу понять, в чем проблема.DatePicker Не работает, IllegalArgumentException

У меня есть два диалоговых окна даты, чтобы выбрать дату, из которой вызываются индивидуальные OnClickListeners. Может ли кто-нибудь помочь? Спасибо.

// Это в OnCreate

ImageView fromCalendar = (ImageView) findViewById(R.id.from_calendar); 
ImageView toCalendar = (ImageView) findViewById(R.id.to_calendar); 


fromCalendar.setOnClickListener(new View.OnClickListener() { 

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

    } 
}); 

toCalendar.setOnClickListener(new View.OnClickListener() { 

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

    } 
}); 


private DatePickerDialog.OnDateSetListener toDateSetListener = new DatePickerDialog.OnDateSetListener() { 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
      int dayOfMonth) { 

     mYear = year; 
     mMonth = monthOfYear; 
     mDay = dayOfMonth; 
     Log.e("mYear", "" + year + " mMonth:" + mMonth + " mDay" + mDay); 
     String date = updateDisplay(true); 

     toDate.setText(date); 
    } 
}; 

вне // OnCreate

private DatePickerDialog.OnDateSetListener fromDateSetListener = new DatePickerDialog.OnDateSetListener() { 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
      int dayOfMonth) { 

     mYear = year; 
     mMonth = monthOfYear; 
     mDay = dayOfMonth; 
     Log.e("mYear", "" + year + " mMonth:" + mMonth + " mDay" + mDay); 
     String date = updateDisplay(true); 

     fromDate.setText(date); 
    } 
}; 



protected Dialog onCreateDialog(int id) { 
    switch(id) { 

    case FROM_DATE_DIALOG: 
     Log.e("onCreateDialog::mYear", "" + mYear + " mMonth:" + mMonth 
       + " mDay" + mDay); 
     return new DatePickerDialog(this, fromDateSetListener, mYear, mMonth, 
       mDay); 


    case TO_DATE_DIALOG: 
     Log.e("onCreateDialog::mYear", "" + mYear + " mMonth:" + mMonth 
       + " mDay" + mDay); 
     return new DatePickerDialog(this, toDateSetListener, mYear, mMonth, 
       mDay); 
    } 
    return null; 
} 
+2

Укажите, пожалуйста, свой выход logcat – eftokay83

+1

, где 'mYear, mMonth, mDay' инициализируются? –

ответ