静态列表延迟初始化失败

时间:2016-03-29 19:30:10

标签: android static android-viewpager

我有一个viewpager从List获取其适配器。我从静态方法中获取List:

private static List<VerticalPagerAdapter> verticalAdapters;
public static List<VerticalPagerAdapter> getVerticalPagerAdapterList(FragmentManager fm) {
//        List<VerticalPagerAdapter> verticalAdapters = new ArrayList<>();
    if (verticalAdapters==null) {
        verticalAdapters = new ArrayList<>();
        GraphModel graphModel = GraphModel.getInstance();
        int numberOfYears = graphModel.getLastYear()-graphModel.getFirstYear();
        for (int i = 0; i < numberOfYears; i++) {
            verticalAdapters.add(new VerticalPagerAdapter(fm, i, 2, DoubleVPChildFragment.class));
        }
    }
    return verticalAdapters;
}

如果我通过取消注释第3行并注释条件来创建新数组,一切正常,但这是一个测试代码示例,在某些情况下,数组的创建可能会变为CPU密集型。

所以我试图延迟初始化ArrayList,但它不起作用:只填充第二个片段(不是第一个片段,奇怪的不是吗?)。

这是我对my library的测试的一部分,因此您可以尝试the sample project(只有2个班级)来查看我的问题。

0 个答案:

没有答案