2

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

4

0 回答 0