在我的应用程序中,我使用 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 文件创建一个开始?