设置android datepicker日期限制
我在android中使用datePicker来显示基于用户选择日期的图像。我需要将上述日期限制在某些日期,例如2010年1月1日至2010年12月31日。简单,因为我认为但没有我在哪里可以找到如何限制这些日期的答案。设置android datepicker日期限制
有谁知道如何限制日期为Android的DatePicker
我想你必须实现自己的DatePicker
。这背后的逻辑是:“只有少数开发者会限制DatePicker
,所以他们必须实现自己的功能。”
回答可能太迟了,但很容易将min
和max
的日期设置为DatePickerDialog
。 适用于所有Android版本。只要你需要返回DatePickerDialog
基于Android版本
protected Dialog onCreateDialog(int id)
{
switch (id)
{
case DATE_DIALOG_ID:
DatePickerDialog dialog = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
{
dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDate)
{
mTextView.setText(selectedDate + "/" + selectedMonth + 1 + "/" + selectedYear);
}
}, year, month - 1, date);
Calendar currentDate = Calendar.getInstance();
dialog.getDatePicker().setMaxDate(currentDate.getTimeInMillis());
//If you need you can set min date too
}
else
{
dialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener()
{
@Override
public void onDateSet(DatePicker view, int selectedYear, int selectedMonth, int selectedDate)
{
mTextView.setText(selectedDate + "/" + selectedMonth + 1 + "/" + selectedYear);
}
}, year, month - 1, date)
{
@Override
public void onDateChanged(DatePicker view, int year, int month, int day)
{
if (year <= maxYear && month + 1 <= maxMonth && date <= maxDate) //meets your criteria
{
view.updateDate(year, month, date); //update the date picker to selected date
}
else
{
view.updateDate(maxYear, maxMonth - 1, maxDate); // or you update the date picker to previously selected date
}
}
};
}
return dialog;
}
return null;
}
为什么你不应该customoption设计新的布局类似的DatePicker。你可以使用Spinners和Forloops。
您可以只设置:
dateDialog.getDatePicker().setMaxDate(new Date().getTime());
和
dateDialog.getDatePicker().setMinDate(new Date().getTime());
其中dateDialog是
new DatePickerDialog()
和参数类型为MAXDATE设置和为MinDate是long
只适用于比Android 11更晚的版本。 – 2015-04-04 04:52:47
for api 2015-10-05 07:57:20
U可以通过键入简单的线条实现这一
mDatePicker.getDatePicker().setMinDate(System.currentTimeMillis());
mcurrentDate.add(Calendar.MONTH,6);
mDatePicker.getDatePicker().setMaxDate(mcurrentDate.getTimeInMillis());
我设法编程设定的最小,最大可选的日期,及还设置了DatePicker的查看当前(默认)日期:http://stackoverflow.com/问题/ 6421874 /如何获取date-set-in-date-date-date-set-in-date-date-date-set-in-android/7961268#7961268 – 2011-11-02 14:39:06