2014-09-25 130 views
1

我是新来的android,并尝试将datepicker对话框的最大日期设置为当前日期。完成R & D但没有成功。请有人帮助我。在此先感谢如何将android datepicker对话框的最大日期设置为当前日期?

下面是代码:

Calendar myCalendar; 
    DatePickerDialog.OnDateSetListener date; 

    dobET = (EditText) findViewById(R.id.dobET); 
    myCalendar = Calendar.getInstance(); 

    date = new DatePickerDialog.OnDateSetListener() { 

     @Override 
     public void onDateSet(DatePicker view, int year, int monthOfYear, 
       int dayOfMonth) { 
      // TODO Auto-generated method stub 
      myCalendar.set(Calendar.YEAR, year); 
      myCalendar.set(Calendar.MONTH, monthOfYear); 
      myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
      updateLabel(); 
     } 
    }; 

    dobET.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      new DatePickerDialog(ChangeProfileActivity.this, date, 
        myCalendar.get(Calendar.YEAR), myCalendar 
          .get(Calendar.MONTH), myCalendar 
          .get(Calendar.DAY_OF_MONTH)).show(); 

     } 
    }); 

回答

0

使用此:

mDPDdialog.getDatePicker().setMaxDate(new Date().getTime()); 

Documentation

编辑: 试试这个:

this.calendar = new GregorianCalendar(); 
this.datePicker = (DatePicker) findViewById(R.id.mDatePicker); 

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
    // (picker is a DatePicker) 
    this.datePicker.setMaxDate(this.calendar.getTimeInMillis()); 
} else { 
    final int maxYear = this.calendar.get(Calendar.YEAR); 
    final int maxMonth = this.calendar.get(Calendar.MONTH); 
    final int maxDay = this.calendar.get(Calendar.DAY_OF_MONTH); 

    this.datePicker.init(maxYear, maxMonth, maxDay, 
     new OnDateChangedListener() { 

      public void onDateChanged(DatePicker view, int year, 
        int month, int day) { 
       Calendar newDate = Calendar.getInstance(); 
       newDate.set(year, month, day); 

       if (newDate.after(calendar)) { 
        view.init(maxYear, maxMonth, maxDay, this); 
       } 
      } 
     }); 
} 
+1

它不工作,因为我的API(10) – zohaib 2014-09-25 10:53:36

1
DatePickerDialog dialog = null; 
Calendar myCalendar = Calendar.getInstance(); 

DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() 
{ 
    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) 
    { 
     myCalendar.set(Calendar.YEAR, year); 
     myCalendar.set(Calendar.MONTH, monthOfYear); 
     myCalendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 
     updateLabel(); 
    } 
}; 
private void updateLabel() 
{ 
    String myFormat = "MM/dd/yy"; //In which you need put here 
    SimpleDateFormat sdf = new SimpleDateFormat(myFormat, Locale.US); 

    dobET.setText(sdf.format(myCalendar.getTime())); 
} 
dialog = new DatePickerDialog(MainActivity.this, date, myCalendar.get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), 
      myCalendar.get(Calendar.DAY_OF_MONTH)); 

试试这个它会帮助你....

+0

它不工作.... – zohaib 2014-09-25 10:52:38

+0

@zohaib是什么问题? – Umair 2014-09-25 10:56:53

+0

它没有在dobET.setText(sdf.format(myCalendar.getTime()))中设置值; – zohaib 2014-09-25 11:58:23

相关问题