2016-03-07 66 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

如果(date.before(mMinDate)){ 拋出新拋出:IllegalArgumentException(「FROM日期:」 + mMinDate.getTime() +「不在toDate之前:「+ 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

如何製作? ?? –

相關問題