Поле доступа в закрытом классе посредством отражения ⇐ JAVA
Поле доступа в закрытом классе посредством отражения
Я пытаюсь получить доступ к частному полю mRadialTimePickerModeButton в android.widget.TimePickerClockDelegate
TimePickerClockDelegate — это закрытый класс, расширяющий TimePicker.AbstractTimePickerDelegate, который реализует TimePicker.TimePickerDelegate
Я не могу создать новый экземпляр, мне нужно изменить это поле в этом конкретном экземпляре.
Я пробовал получить к нему доступ следующим образом:
Поле поля = TimePickerDialog.class.getDeclaredField("mTimePicker"); поле.setAccessible(истина); TimePicker timePicker = (TimePicker) field.get(this); Поле делегата = TimePicker.class.getDeclaredField("mDelegate"); делегатField.setAccessible(истина); Делегат объекта = делегатField.get(timePicker); Поле buttonField = делегат.getClass().getDeclaredField("mRadialTimePickerModeButton"); buttonField.setAccessible(истина); ImageButton радиальныйTimePickerModeButton = (ImageButton) buttonField.get(делегат); Получение: в классе Landroid/widget/TimePickerClockDelegate нет поля mRadialTimePickerModeButton; (объявление android.widget.TimePickerClockDelegate появляется в /system/framework/framework.jar!classes4.dex)
Я пытаюсь получить доступ к частному полю mRadialTimePickerModeButton в android.widget.TimePickerClockDelegate
TimePickerClockDelegate — это закрытый класс, расширяющий TimePicker.AbstractTimePickerDelegate, который реализует TimePicker.TimePickerDelegate
Я не могу создать новый экземпляр, мне нужно изменить это поле в этом конкретном экземпляре.
Я пробовал получить к нему доступ следующим образом:
Поле поля = TimePickerDialog.class.getDeclaredField("mTimePicker"); поле.setAccessible(истина); TimePicker timePicker = (TimePicker) field.get(this); Поле делегата = TimePicker.class.getDeclaredField("mDelegate"); делегатField.setAccessible(истина); Делегат объекта = делегатField.get(timePicker); Поле buttonField = делегат.getClass().getDeclaredField("mRadialTimePickerModeButton"); buttonField.setAccessible(истина); ImageButton радиальныйTimePickerModeButton = (ImageButton) buttonField.get(делегат); Получение: в классе Landroid/widget/TimePickerClockDelegate нет поля mRadialTimePickerModeButton; (объявление android.widget.TimePickerClockDelegate появляется в /system/framework/framework.jar!classes4.dex)
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение