Ich arbeite an einer App, in der ich eine benutzerdefinierte Datums- und Uhrzeitauswahl verwenden. Ich habe ein Dialogfeld erstellt, in dem ich die Datums- und Uhrzeitauswahl zeige, und jetzt möchte ich ein minimales und maximales Limit für die Datumsauswahl festlegen. So sollte man das vorherige Datum nicht von heute und nicht mehr als einen Monat voraus wählen können. Dies ist mein CodeWie legt man eine Mindest- und Höchstgrenze für eine Datumsauswahl in Android fest?
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final DatePicker picker = new DatePicker(getActivity());
try {
Field f[] = picker.getClass().getDeclaredFields();
for (Field field : f) {
if (field.getName().equals("mYearPicker") || field.getName().equals("mYearSpinner")) {
field.setAccessible(true);
Object yearPicker = new Object();
yearPicker = field.get(picker);
((View) yearPicker).setVisibility(View.GONE);
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
picker.setCalendarViewShown(false);
picker.setMinDate(new Date().getTime());
builder.setTitle("Please select date on which you would be leaving :")
.setView(picker)
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
SimpleDateFormat parseFormat = new SimpleDateFormat("EEE dd MMM");
Date date1 = new Date();
date1.setDate(picker.getDayOfMonth());
date1.setMonth(picker.getMonth());
final String s = parseFormat.format(date1);
Log.e("DATE", s);
SimpleDateFormat sdf=new SimpleDateFormat("MM-dd-yyyy");
Date date2=new Date();
date2.setDate(picker.getDayOfMonth());
date2.setMonth(picker.getMonth());
final String s2=sdf.format(date2);
//Time picker
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final TimePicker picker = new TimePicker(getActivity());
picker.setIs24HourView(true);
builder.setTitle("Please select time at which you would be leaving :")
.setView(picker)
.setPositiveButton("OK",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
int hour = picker.getCurrentHour();
int minute = picker.getCurrentMinute();
leaving.setTextSize(14);
leaving.setText(s + " " + hour + ":" + minute);
inTime=s2+" "+hour+":"+minute;
Log.e("inTime ",inTime);
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
leaving.setText("");
inTime="";
dialog.dismiss();
}
}).create().show();
//Time picker
}
}
)
.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
leaving.setText("");
inTime="";
dialog.dismiss();
}
}
)
.create().show();
Bitte helfen. Danke
für mindestens Datumseinstellung können Sie 'datePickerobject.setMinDate (System.currentTimeMillis() - 1000) verwenden;' –
für maximal 'datePickerobject.setMaxDate (lastdate_converted_in_long);' –