So legen Sie das Datumslimit im Dialogfeld "Datumsauswahl" fest
Ich möchte das Datum begrenzen, damit der Benutzer nicht mehr als das Datum auswählen kann. Wenn beispielsweise heute der 1. Januar ist, sollte der Benutzer nicht in der Lage sein, mehr als 7 Daten auszuwählen. Ich meine, er kann den 9. Januar nicht auswählen. Ich möchte auch, dass er den Monat und das Jahr nicht auswählt. Also setze ich ein Limit, um seine Aufgabe in einer Woche zu erledigen.
was ich bisher getan habe, zeigt das Datumsauswahlfragment und setzt das aktuelle Datum darin. Der Code in meiner Hauptaktivität sieht folgendermaßen aus:
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");
}
});
ie Fragmentklasse von @ und Datumsauswahl sieht folgendermaßen aus:
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
}
}
is dahin funktioniert es einwandfrei, aber ich weiß nicht, wie ich das Datum begrenzen soll, und der Rest der Monate und des Jahres sollte nicht auswählbar sein. Ich habe viele Links gesehen, wie zBDie, aber ich verstehe nicht, wie kann ich das tun und es gibt auch nichts hilfreiches auf Android-Website.
Also bitte hilf mir, wie kann ich das Limit von nur sieben Tagen setzen
Aktualisiere
Durch Ihre Antworten weiß ich, wie man das maximale Datum im Kalender festlegt. Da ich das maximale Datum 7 Tage vor dem aktuellen Datum festlegen möchte, erhalte ich es immer noch nicht. Die Methode, die ich bisher gelesen habe, ist:
pickerDialog.getDatePicker().setMaxDate(new Date().getTime());
Es wird das aktuelle Datum als Maximum festgelegt, aber wie kann ich 7 Tage im Voraus hinzufügen, da es sich um ein Datumsobjekt handelt? bitte hilf