可滑动的动态片段

时间:2014-03-03 21:34:29

标签: android android-fragments fragment

我正在尝试创建一个测验程序,用户可以在问题之间轻扫。片段需要是动态的,因此我可以加载随机问题,他们需要能够向主要活动报告,以便我可以在最后检查它们是对还是错。

我试图攻击的第一个问题是使片段动态化。我有下面的代码创建静态片段。我发送了一个数字(目前是硬编码但是它是随机的)每个实例/片段都保存在一个数组中

我的问题是当我尝试在getItem方法中动态创建片段时,程序会崩溃。任何人都可以指导我...(注释掉静态工作示例)

另见:Android layout using Swipe View and Tile Strip

public class MyPagerAdapter extends FragmentPagerAdapter 
{

private List<Fragment> fragments;

public MyPagerAdapter(FragmentManager fm) 
{
    super(fm);
    /*
    fragments.add(new QuestionScreen(1));
    fragments.add(new QuestionScreen(2));
    fragments.add(new QuestionScreen(3));
    fragments.add(new QuestionScreen(4));
    fragments.add(new QuestionScreen(5));
    fragments.add(new QuestionScreen(6));
    fragments.add(new QuestionScreen(7));
    fragments.add(new QuestionScreen(8));
    fragments.add(new QuestionEnd());
    fragments.add(new QuestionStart());
    fragments.add(new QuestionEnd());
    */
    Log.w("he","hehehe");
}

@Override
public Fragment getItem(int position) 
{

    if (position == 0) {        // change to switch statement
        return new QuestionScreen(1);
    } else if (position == 1) {
        return new QuestionScreen(2);
    } else if (position == 2) {
        return new QuestionScreen(3);
    } else if (position == 3) {
        return new QuestionScreen(4);
    } else {
        return new QuestionEnd();
    }
    //Log.w("se","sesese");
    //return fragments.get(position);
}

@Override
public int getCount() 
{
    Log.w("pe","pepepe");

    return fragments.size();
}
}

1 个答案:

答案 0 :(得分:0)

我的问题出在getCount。

当没有实际添加片段时,该方法试图返回fragments.size。

删除它可以解决问题