Как вы получаете 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)); 

Я хочу получить представление DatePicker из DatePickerDialog, чтобы установить минимальные и максимальные даты. В справочнике API говорится, что существует метод getDatePicker и который существует с API 1, но он недействителен, мой идеал ему не нравится.

 DatePicker picker = dialog.getDatePicker(); 

«Метод getDatePicker () не определен для типа DatePickerDialog"

Кто-нибудь знает, каким API был создан метод или как я могу добраться до DatePicker для редактирования минимальных / максимальных дат?

Я использую API 7, платформа 2.1.

Solutions Collecting From Web of "Как вы получаете DatePicker из DatePickerDialog?"

Несмотря на то, что метод 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 и вы сможете изменить его по своему вкусу. Пожалуйста, остерегайтесь очевидных опечаток, поскольку я ввел это прямо в браузер.

Вы неправильно читаете, он доступен только с API 11:

"Public DatePicker getDatePicker () С: API Level 11". Посмотрите внимательно .