我有一个弹出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();
“方法getDatePicker()未定义类型DatePickerDialog”
任何人都知道创建的方法是什么API,或者我如何到达DatePicker来编辑最小/最大日期?
我正在使用API 7,平台2.1。
答案 0 :(得分:23)
尽管这种getter方法仅在Honeycomb及以上版本中可用(正如dmon正确指出的那样),但您仍然可以使用反射轻松访问由DatePicker
封装的DatePickerDialog
对象。它看起来像这样:
DatePickerDialog dialog = ... // create dialog
Field mDatePickerField = dialog.getClass().getDeclaredField("mDatePicker");
mDatePickerField.setAccessible(true);
DatePicker mDatePickerInstance = (DatePicker) mDatePickerField.get(dialog);
从现在开始,您可以引用内部DatePicker
对象,并且您应该可以根据自己的喜好进行更改。请注意任何明显的拼写错误,因为我直接将其输入浏览器。
答案 1 :(得分:3)
你误读了,它只能在API 11之后使用:
“public DatePicker getDatePicker()从:API Level 11”。看 closely 。