В своем приложении я использую библиотеку поддержки v4 для отображения пользовательских настроек в виде ViewPager
с вкладками. До сих пор я использовал некий пользовательский Fragment
, который воспроизводит то, что делает PreferenceFragment
.
Например, здесь есть несколько предложений .
После обновления всего моего Android SDK до последних версий эти пользовательские Fragments
перестали работать, в частности, они, похоже, не вызывают этот метод путем отражения:
static PreferenceScreen inflateFromResource(PreferenceManager manager,
Activity activity, int resId, PreferenceScreen screen) {
try {
Method m = PreferenceManager.class.getDeclaredMethod("inflateFromResource", Context.class, int.class, PreferenceScreen.class);
m.setAccessible(true);
PreferenceScreen prefScreen = (PreferenceScreen) m.invoke(manager, activity, resId, screen);
return prefScreen;
} catch (Exception e) {
Log.w(TAG, "Couldn't call PreferenceManager.inflateFromResource by reflection", e);
}
return null;
}
Поскольку никто не может изменить представление метода в API, возможно ли создать PreferenceScreen
на основе XML-файла?