Como definir o limite de data na caixa de diálogo Seletor de datas
Quero colocar o limite na data para que o usuário não possa escolher uma data mais que, por exemplo, se hoje for 1º de janeiro, o usuário não poderá selecionar mais de sete datas, ou seja, ele não poderá selecionar 9 de janeiro. Eu também quero que ele não selecione o mês e o ano. Estou colocando um limite para definir sua tarefa em uma semana.
o que fiz até agora é mostrar o fragmento do seletor de datas e definir a data atual nele. o código na minha atividade principal é assim:
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");
}
});
e a classe de fragmento do seletor de datas é assim:
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
}
}
até então, está funcionando bem, mas não sei como definir o limite para a data e o restante dos meses e o ano não deve ser capaz de selecionar. Já vi muitos links comoesta , mas eu não entendo Como posso fazer isso e também não há nada útil no site do Android.
Então, por favor me ajude, como posso colocar limite de sete dias apenas
Atualizar
Através de suas respostas, eu sei como definir a data máxima no calendário, então, como eu quero definir a data máxima 7 dias antes da data atual, ainda não estou conseguindo. o método que li até agora é:
pickerDialog.getDatePicker().setMaxDate(new Date().getTime());
Ele está definindo a data atual como máxima, mas como posso adicionar 7 dias à frente, já que é o objeto Date? por favor ajude