Android 如何从DatePickerDialog中获取日期选择器?

Android 如何从DatePickerDialog中获取日期选择器?,android,datepicker,datepickerdialog,Android,Datepicker,Datepickerdialog,我有一个活动正在弹出一个android.app.DatePickerDialog DatePickerDialog dialog = new DatePickerDialog(this, startDateSetListener, start_cal.get(Calendar.YEAR), start_cal.get(Calendar.MONTH), start_cal.get(Calendar.DATE)); 我想从DatePickerDialog获取DatePicker视图,以便设置最小

我有一个活动正在弹出一个android.app.DatePickerDialog

DatePickerDialog dialog =  new DatePickerDialog(this, startDateSetListener, start_cal.get(Calendar.YEAR), start_cal.get(Calendar.MONTH), start_cal.get(Calendar.DATE));
我想从DatePickerDialog获取DatePicker视图,以便设置最小和最大日期。API引用说有一个getDatePicker方法,它从API 1开始就存在,但是它是无效的,我的ide不喜欢它

DatePicker picker = dialog.getDatePicker();
“类型DatePickerDialog的方法getDatePicker()未定义”

任何人都知道该方法是在什么API中创建的,或者我如何找到DatePicker来编辑最小/最大日期


我使用的是API 7平台2.1。

您误读了,它仅在API 11:


“公共日期选择器getDatePicker()自:API级别11”。看。

尽管getter方法仅在Honeycomb和更高版本中可用(正如dmon正确指出的那样),但您仍然可以使用反射相当容易地访问由
日期选择器对话框
封装的
日期选择器
对象。它看起来像这样:

DatePickerDialog dialog = ... // create dialog
Field mDatePickerField = dialog.getClass().getDeclaredField("mDatePicker");
mDatePickerField.setAccessible(true);
DatePicker mDatePickerInstance = (DatePicker) mDatePickerField.get(dialog);

从这一点开始,您就有了对内部
DatePicker
对象的引用,您应该能够根据自己的喜好对其进行更改。请注意任何明显的打字错误,因为我直接在浏览器中输入了这些内容。

回答得好。不幸的是,get和set max on date选择器也是API 11…糟糕,我还没有看过这些。不幸的是,在浏览2.1-update1的
DatePicker
源代码时,完全没有最小/最大日期逻辑。我想您可以创建自己的
DatePicker
扩展来处理这个问题,并将其插入
DatePickerDialog
(或使用自定义对话框),但对于一些非常次要的东西来说,这似乎是一项非常艰巨的工作。