Cómo establecer el límite de fecha en el cuadro de diálogo Selector de fecha
Quiero poner el límite en la fecha para que el usuario no pueda elegir la fecha más que eso, por ejemplo, si hoy es el 1 de enero, el usuario no debería poder seleccionar más de 7 fechas, es decir, no puede seleccionar el 9 de enero. También quiero que no seleccione el mes y el año. Así que estoy poniendo un límite para establecer su tarea en una semana.
Lo que he hecho hasta ahora es mostrar el fragmento del selector de fecha y establecer la fecha actual en él. El código en mi actividad principal es así:
etSelectDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment datePickerFragment = new DatePickerFragment() {
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Log.d("Date Change", "onDateSet");
Calendar c = Calendar.getInstance();
c.set(year, month, day);
DateFormat df = DateFormat.getDateInstance();
etSelectDate.setText(df.format(c.getTime()));
//nextField.requestFocus(); //moves the focus to something else after dialog is closed
}
};
datePickerFragment.show(MainActivity.this.getSupportFragmentManager(), "datePicker");
}
});
y la clase de fragmento de selector de fecha es así:
public static class DatePickerFragment extends DialogFragment implements DatePickerDialog.OnDateSetListener{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
// Use the current date as the default date in the picker
final Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
// Create a new instance of DatePickerDialog and return it
return new DatePickerDialog(getActivity(), this, year, month, day);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
//blah
}
}
hasta entonces está funcionando bien, pero no sé cómo poner el límite en la fecha y el resto de los meses y el año no deberían ser seleccionables. He visto muchos enlaces como me gustaesta , pero no entiendo cómo puedo hacer eso y tampoco hay nada útil en el sitio de Android.
Así que por favor ayúdenme, ¿cómo puedo poner un límite de solo siete días?
Actualizar
A través de sus respuestas, sé cómo configurar la fecha máxima en el calendario, por lo que como quiero establecer la fecha máxima 7 días antes de la fecha actual, todavía no la obtengo. El método que leí hasta ahora es:
pickerDialog.getDatePicker().setMaxDate(new Date().getTime());
Establece la fecha actual como máxima, pero ¿Cómo puedo agregar 7 días de anticipación ya que es un objeto Fecha? por favor ayuda