我正在尝试创建一个测验程序,用户可以在问题之间轻扫。片段需要是动态的,因此我可以加载随机问题,他们需要能够向主要活动报告,以便我可以在最后检查它们是对还是错。
我试图攻击的第一个问题是使片段动态化。我有下面的代码创建静态片段。我发送了一个数字(目前是硬编码但是它是随机的)每个实例/片段都保存在一个数组中
我的问题是当我尝试在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();
}
}
答案 0 :(得分:0)
我的问题出在getCount。
当没有实际添加片段时,该方法试图返回fragments.size。
删除它可以解决问题