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

如何制作? ?? –

相关问题