Android 如何通过页面查看器显示页面间隔
我目前正在制作一个类似书本的小游戏,用于教育目的,我正在使用页面查看器将Strings.xml中的信息放在每个页面上。这是一本相当小的书,所以我是这样写的。我已经显示了所有的页面,你可以毫无问题地浏览。当我只想显示一定间隔的页面时,问题就开始了。这场比赛有三节课。第一课有两页(1-2),第二课有(3-9),第三课有(10-15)。总共有15页的信息 有没有办法让页面查看器只显示一定间隔的页面 我让用户选择一个按钮,这会向另一个名为BookActivity的类发送关于所选课程的意图。从那里我得到的意图,以找出哪些教训是点击,并希望显示某些网页的基础上。这是图书活动课Android 如何通过页面查看器显示页面间隔,android,android-viewpager,Android,Android Viewpager,我目前正在制作一个类似书本的小游戏,用于教育目的,我正在使用页面查看器将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?:)我终于能按照你的建议使一切顺利进行。再次感谢你!我终于能按照你的建议使一切顺利进行。再次感谢你!