我有一个活动,弹出一个
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,Platform 2.1.
解决方法
尽管在Honeycomb和以上(除了dmon正确指出)中,getter方法只能使用,但是仍然可以很容易地使用反射来访问DatePickerDialog封装的DatePicker对象.看起来像这样:
DatePickerDialog dialog = ... // create dialog Field mDatePickerField = dialog.getClass().getDeclaredField("mDatePicker"); mDatePickerField.setAccessible(true); DatePicker mDatePickerInstance = (DatePicker) mDatePickerField.get(dialog);
从此,您可以引用内部的DatePicker对象,您应该可以根据自己的喜好进行更改.请注意任何明显的错字,因为我直接进入浏览器.