Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何通过页面查看器显示页面间隔_Android_Android Viewpager - Fatal编程技术网

Android 如何通过页面查看器显示页面间隔

Android 如何通过页面查看器显示页面间隔,android,android-viewpager,Android,Android Viewpager,我目前正在制作一个类似书本的小游戏,用于教育目的,我正在使用页面查看器将Strings.xml中的信息放在每个页面上。这是一本相当小的书,所以我是这样写的。我已经显示了所有的页面,你可以毫无问题地浏览。当我只想显示一定间隔的页面时,问题就开始了。这场比赛有三节课。第一课有两页(1-2),第二课有(3-9),第三课有(10-15)。总共有15页的信息 有没有办法让页面查看器只显示一定间隔的页面 我让用户选择一个按钮,这会向另一个名为BookActivity的类发送关于所选课程的意图。从那里我得到的

我目前正在制作一个类似书本的小游戏,用于教育目的,我正在使用页面查看器将Strings.xml中的信息放在每个页面上。这是一本相当小的书,所以我是这样写的。我已经显示了所有的页面,你可以毫无问题地浏览。当我只想显示一定间隔的页面时,问题就开始了。这场比赛有三节课。第一课有两页(1-2),第二课有(3-9),第三课有(10-15)。总共有15页的信息

有没有办法让页面查看器只显示一定间隔的页面

我让用户选择一个按钮,这会向另一个名为BookActivity的类发送关于所选课程的意图。从那里我得到的意图,以找出哪些教训是点击,并希望显示某些网页的基础上。这是图书活动课

    public class BookActivity extends Activity
{
    private String getLessonName;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Intent intent = getIntent();
        // getting object's properties from LoginActivity class.

        getLessonName = intent.getStringExtra("nameOfLesson");
        MyPageAdapter adapter = new MyPageAdapter();
        ViewPager myPager = (ViewPager) findViewById(R.id.myfivepanelpager);

       // Button addBasicQuestionsForFirstLesson = (Button)findViewById(R.id.addBasicQuestionsButton);
        myPager.setAdapter(adapter);

        if(getLessonName.equals("one"))
        {
        myPager.setCurrentItem(0);
        if(myPager.getCurrentItem() == 1)
        {
            myPager.setCurrentItem(1);
        }
        }
        else if(getLessonName.equals("two"))
        {
            myPager.setCurrentItem(2);
            if(myPager.getCurrentItem() == 8)
            {
                myPager.setCurrentItem(8);
            }
        }
        else if(getLessonName.equals("three"))
        {
            myPager.setCurrentItem(9);
            if(myPager.getCurrentItem()==14)
            {
                myPager.setCurrentItem(14);
            }
        }


    }

}
非常感谢你帮我看这个。如果有人知道如何做这样的事情,我会非常感激。如果有更好的方法,我不想为单独的页面创建多个活动

 class MyPageAdapter extends PagerAdapter
{

}


再次感谢你。这是我添加的代码

您可以使用侦听器进行页面更改,然后在用户超出您的范围时强制用户转到某个页面。使用
onPageSelected()
可以检测越界页面,然后强制用户进入上一页面。 下面是听众:

不过,我认为更好的解决方案是,根据用户选择的课程,只向ViewPager添加某些页面。如果您有一个带有按钮的主活动来选择课程,那么当单击这些按钮时,它们可以启动不同的活动,使ViewPager充满您想要的页面。所以它看起来像:

MainActivity
- Button1
    -Activity with ViewPager for pages 1-2
- Button2
    -Activity with ViewPager for pages 3-9
- Button3
    -Activity with ViewPager for pages 10-15

我认为这样的结构更有条理。

您可以使用一个侦听器来更改页面,然后在用户超出您的范围时强制用户转到某个页面。使用
onPageSelected()
可以检测越界页面,然后强制用户进入上一页面。 下面是听众:

不过,我认为更好的解决方案是,根据用户选择的课程,只向ViewPager添加某些页面。如果您有一个带有按钮的主活动来选择课程,那么当单击这些按钮时,它们可以启动不同的活动,使ViewPager充满您想要的页面。所以它看起来像:

MainActivity
- Button1
    -Activity with ViewPager for pages 1-2
- Button2
    -Activity with ViewPager for pages 3-9
- Button3
    -Activity with ViewPager for pages 10-15

我认为这样的结构更有条理。

我认为您必须根据需要设置适配器,假设用户先选择课程,然后适配器将仅配置两页数据,然后再次设置myPager.setAdapter(适配器),如果用户选择lesson second,则适配器将配置3-9页数据,并再次设置myPager.setAdapter(适配器);。听起来很合理。好吧,我会试试这个,然后再报告。好吧,我试过了,但不知道该用什么方法。我对页面查看器没有太多经验。到目前为止,如果我有:myPager.setCurrentItem(2),它将转到正确的页面开始;为什么没有setEndingItem?:)我认为您必须根据需要设置适配器,假设用户先选择课程,然后适配器将仅配置两页数据,然后再次设置myPager.setAdapter(适配器),如果用户选择lesson second,则适配器将配置3-9页数据,并再次设置myPager.setAdapter(适配器);。听起来很合理。好吧,我会试试这个,然后再报告。好吧,我试过了,但不知道该用什么方法。我对页面查看器没有太多经验。到目前为止,如果我有:myPager.setCurrentItem(2),它将转到正确的页面开始;为什么没有setEndingItem?:)我终于能按照你的建议使一切顺利进行。再次感谢你!我终于能按照你的建议使一切顺利进行。再次感谢你!