如果我们必须在android中使用viewpager创建多个页面,那么我们必须创建多个片段吗?还有其他选择吗?

如果我们必须在android中使用viewpager创建多个页面,那么我们必须创建多个片段吗?还有其他选择吗?,android,android-fragments,android-viewpager,android-tabs,Android,Android Fragments,Android Viewpager,Android Tabs,我正在创建一个android问答应用程序,其中我将使用viewpager。我已经阅读了一些教程,在这些教程中,每个新页面都会为片段/选项卡创建一个新类。现在如果我想总共有15页,那么我需要创建那么多的类吗?没有其他选择吗?您应该为要在查看页面中显示的每个不同页面创建一个片段。然后,您可以通过FragmentPagerAdapter中的位置选择每个片段,视图页面中的每个页面都是片段的不同实例,但不要求每个页面都是片段的不同类 在一个过于简单的应用程序中,您可以想象ViewPager中的每个页面只会

我正在创建一个android问答应用程序,其中我将使用viewpager。我已经阅读了一些教程,在这些教程中,每个新页面都会为片段/选项卡创建一个新类。现在如果我想总共有15页,那么我需要创建那么多的类吗?没有其他选择吗?

您应该为要在
查看页面中显示的每个不同页面创建一个
片段。然后,您可以通过
FragmentPagerAdapter
中的位置选择每个
片段
视图页面中的每个页面
都是
片段
的不同实例,但不要求每个页面都是
片段
的不同

在一个过于简单的应用程序中,您可以想象
ViewPager
中的每个页面只会显示不同的数字。您可以通过创建一个
OneFragment
类来显示“1”,创建一个
TwoFragment
类来显示“2”,依此类推。或者,您可以创建一个
NumberFragment
类,并使用十五个不同的实例来显示十五个不同的数字:

public class NumberFragment extends Fragment {

    public static NumberFragment newInstance(int number) {
        Bundle args = new Bundle();
        args.putInt("number", number);

        NumberFragment fragment = new NumberFragment();
        fragment.setArguments(args);

        return fragment;
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.number_fragment, container, false);

        int number = getArguments().getInt("number");
        String numberText = String.valueOf(number);

        TextView numberView = root.findViewById(R.id.numberView);
        numberView.setText(numberText);

        return root;
    }
}
有了它,您的
FragmentPagerAdapter
就非常简单:

public class MyAdapter extends FragmentPagerAdapter {

    @Override
    public Fragment getItem(int position) {
        return NumberFragment.newInstance(position);
    }

    @Override
    public int getCount() {
        return 15;
    }
}
这一概念甚至适用于更复杂的应用程序。只要
ViewPager
的每个页面对其数据具有相同的结构,就可以通过将必要的配置传递给
newInstance()
来创建单个
片段
类的新实例


您还可以将此技术与为每个页面创建一个新的
Fragment
子类的技术进行混合和匹配。也许你希望你的第一页和最后一页是独一无二的,但是中间的十三页基本上都是一样的。

谢谢你的回答。嗯,我是android的初学者,那么在我的情况下这将如何工作呢?在每个页面上,我都必须显示一个带有相应单选按钮的新问题。我真的很困惑在哪里存储数据并在页面上相应地显示它。这取决于问题在应用程序中的表示方式。