2014-09-25 5 views
1

Я новичок в android и пробовал каждую вещь, чтобы установить дату datepicker dialog max date на текущую дату. Сделано R & D, но не удалось. Пожалуйста, помогите мне в этом. Заранее спасибокак установить диалоговому диалоговому диалоговому окну android date date в текущую дату?

Вот код:

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

EDIT: Попробуйте это:

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

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

+0

@zohaib чем проблема? – Umair

+0

он не установил значение в dobET.setText (sdf.format (myCalendar.getTime())); – zohaib

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