2011-02-09 118 views

回答

7

是的,你可以做到这一点非常easely这里的验证是为例:

if(dateObj1.before(dateObj2) || dateObj1.equals(dateObj2)){ 
//the program runs normally 
} 
else{ 
       new AlertDialog.Builder(PM_Edit.this) 

       .setTitle("Wrong Data Input!") 

       .setMessage("The end Date must be Before the start Date, please insert new Date values") 

       .setNeutralButton("Ok", 

       new DialogInterface.OnClickListener() { 

       public void onClick(DialogInterface dialog, 

       int which) { 

       } 

       }).show(); 
      } 

贷: http://www.brighthub.com/mobile/google-android/articles/41545.aspx

3

我还没有和DatePicker的工作,但该文件没有显示它可以限制最大日期机械手的显示器的任何方法,仍然可以随时检查它返回,并可以通知有关验证标准的用户的日期。

+0

好哥们我尝试做手工验证。 – 2011-02-09 11:45:43

0

我同意谢赫。

也许考虑在输入的日期进行验证,如果无效,通知用户并再次启动DatePicker。

除此之外,也许一个自定义窗口小部件,但我还没有看到一个默认的方式做到这一点。

5
DatePicker datePicker = (DatePicker)findViewById(R.id.new_date_picker); 


datePicker.init(year, month, day, new OnDateChangedListener() { 

    @Override 
    public void onDateChanged(DatePicker view, int year, int monthOfYear,int dayOfMonth) { 

     if(isDateAfter(view)){ 
      Calendar mCalendar = Calendar.getInstance(); 
      view.init(mCalendar.get(Calendar.YEAR), mCalendar.get(Calendar.MONTH), mCalendar.get(Calendar.DAY_OF_MONTH), this); 
     } 
    } 


    private boolean isDateAfter(DatePicker tempView) { 
     Calendar mCalendar = Calendar.getInstance(); 
     Calendar tempCalendar = Calendar.getInstance(); 
     tempCalendar.set(tempView.getYear(), tempView.getMonth(), tempView.getDayOfMonth(), 0, 0, 0); 
     if(tempCalendar.after(mCalendar)) 
      return true; 
     else 
      return false; 
    } 
}); 
相关问题