【发布时间】:2016-01-29 14:42:37
【问题描述】:
我希望 DatePickerDialog 不显示当前日期之前的日期。我正在使用setMinDate(long l) 方法。但它不起作用。
我使用一个内部类来设置 minDate:
public static class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
DatePickerDialog datePickerDialog;
@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);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
String s = month + day + year+"";
datePickerDialog = new DatePickerDialog(getActivity(),this,year,month,day);
datePickerDialog.getDatePicker().setMinDate(Long.parseLong(s));
// Create a new instance of DatePickerDialog and return it
return datePickerDialog;
}
public void onDateSet(DatePicker view, int year, int month, int day) {
SelectedDateView.setText(day+ (month + 1) + "-" + "-" + year);
}
}
这是显示它的方法:
public void showDatePickerDialog(View v) {
DialogFragment newFragment = new DatePickerFragment();
newFragment.show(getActivity().getSupportFragmentManager(), "datePicker");
}
【问题讨论】:
-
Long.parseLong(s)你认为这是做什么的? -
@njzk2 将字符串转换为长字符串?
-
是的,但是什么字符串,到什么日期?
setMinDate期待什么? -
@njzk2 我不知道你想说什么。
s = month + day+ year传递给setMinDate -
如有疑问,请使用 rtfm。特别是
setMinDate的文档。您应该看到它期待一个特定的值,而不是您认为代表日期的值。
标签: android android-calendar android-datepicker