2016-03-07 2 views
1

У меня есть две кнопки. Первая кнопка - отбытие и второе - прибытие. На дату отправления minDate = сегодня. И дата прибытия MinDate должна быть равна выбранной даты отправленияКак установить минимальную дату

OnCreate():

final Calendar nextYear = Calendar.getInstance(); 
nextYear.add(Calendar.YEAR, 1); 

Date today = new Date(); 
Date departs; 

initButtonListeners(today, nextYear); 

ButtonClickListener:

public void initButtonListeners(final Date today, final Calendar nextYear) { 
    findViewById(id.linearCalendar).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      showCalendarInDialog("select departure date", R.layout.calendar_dialog_customized); 

       dialogView.init(today, nextYear.getTime()) 
         .withSelectedDate(new Date(departData)); 

     } 
    }); 

    findViewById(id.linearArrive).setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      showCalendarInDialog("select arrival date", R.layout.calendar_dialog_customized); 

      Date dates = null; 

       SimpleDateFormat format = new SimpleDateFormat("dd MMM yyyy"); 
       try { 
        dates = format.parse(departData); 
       } catch (ParseException e) { 
        e.printStackTrace(); 
       } 
       dialogView.init(dates, nextYear.getTime()) 
         .withSelectedDate(new Date(arriveData)); 
      } 

     } 
    }); 

} 

OnDateClickListener:

dialogView.setOnDateSelectedListener(new CalendarPickerView.OnDateSelectedListener() { 
     DateFormat dateFormat = new SimpleDateFormat("dd MMM yyyy"); 

     @Override 
     public void onDateSelected(Date date) { 
      if(isFrom){ 
       departData = dateFormat.format(date); 
       tvDepart.setText(departData); 
      }else{ 
       arriveData = dateFormat.format(date); 
       tvArrive.setText(arriveData); 
      } 

      theDialog.dismiss(); 

     } 

     @Override 
     public void onDateUnselected(Date date) { 

     } 

    }); 

Когда нажмите на кнопку прибытия происшествиям приложение показывает нулевое значение

Ошибка:

java.lang.IllegalArgumentException: The string argument is null 
at java.util.Date.parse(Date.java:373) 
at java.util.Date.<init>(Date.java:149) 
at com.tezz.MainContent.ContentActivity$2.onClick(ContentActivity.java:305) 
at android.view.View.performClick(View.java:4084) 
at android.view.View$PerformClick.run(View.java:16966) 
at android.os.Handler.handleCallback(Handler.java:615) 
at android.os.Handler.dispatchMessage(Handler.java:92) 
at android.os.Looper.loop(Looper.java:137) 
at android.app.ActivityThread.main(ActivityThread.java:4745) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
at dalvik.system.NativeStart.main(Native Method) 

Что не так, как поставить MinDate?

+1

видеть эту ссылку http://stackoverflow.com/questions/13661788/how-to-set-minimum-datepicker-date-to-current-date –

+0

время я уже был добавлен, и это работает , Мне нужно, чтобы дата отправления выбрала дату, чтобы сделать минимум, чтобы прибыть –

ответ

0
try this 
if (event.value) 
    { 
     // Convert field value to a date 
     var d = util.scand("mmddyyyy", event.value); 
    // Set maximum date 
     var d_max = new Date(2013, 11, 31, 23, 59, 59); 
    // Set minimum date 
     var d_min = new Date(2010, 11, 31, 23, 59, 59); 
     if (d.getTime()>d_max.getTime() || d.getTime()<d_min.getTime()) { 
     // Reject the entry 
      event.rc = false; 
       // Optionally, alert the user 
        app.alert("Message here."); 
    } 
} 
+0

Можете ли вы подробно рассказать ... –

+0

if (date.before (mMinDate)) { throw new IllegalArgumentException ("fromDate:" + mMinDate.getTime() + не предшествует дате: "+ date.getTime()); –

+0

где писать? –

0

Выбранная дата должна быть текущая дата, потому что departData будет нулевым.

findViewById(id.linearCalendar).setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     showCalendarInDialog("select departure date", R.layout.calendar_dialog_customized); 

      dialogView.init(today, nextYear.getTime()) 
        .withSelectedDate(new Date()); 

    } 
}); 
+0

как это сделать? ?? –

Смежные вопросы