Tôi đang làm việc trên một ứng dụng mà tôi đang sử dụng bộ chọn ngày và giờ tùy chỉnh. Tôi đã tạo một hộp thoại và bên trong là tôi hiện đang hiển thị bộ chọn ngày và giờ tương ứng, tôi muốn đặt giới hạn tối thiểu và tối đa cho bộ chọn ngày. Chẳng hạn như người ta không thể chọn ngày trước đó từ hôm nay và không quá một tháng trước. Đây là mã của tôiLàm cách nào để đặt giới hạn tối thiểu và tối đa cho bộ chọn ngày trong Android?
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();
Xin vui lòng trợ giúp. Cảm ơn bạn
để thiết lập ngày tối thiểu mà bạn có thể sử dụng 'datePickerobject.setMinDate (System.currentTimeMillis() - 1000);' –
cho tối đa 'datePickerobject.setMaxDate (lastdate_converted_in_long); ' –