从ViewPagerIndicator保存数据

时间:2012-03-10 05:30:26

标签: java android

我一直在寻找,但我找不到任何答案。我有ViewPagerIndicator在我的应用程序中工作,但我找不到任何教程,显示如何使用超过3页。我想用6页。我可以正确显示6页但是当我在第0页输入数据时,它会在我滑到第3页后被消失(被回收?)。我已经阅读了ViewPagerIndicator.java,但说实话,大部分时间都是我的头脑。当滑到第3页时,我需要做什么来保存第0页的数据。有人可以给我一个例子。另外,在刷回第0页时,我用什么来恢复数据?

免责声明:我对Java和Android开发都很陌生;这是我的第一个应用程序。

提前感谢任何人都可以提供的任何指导。

2 个答案:

答案 0 :(得分:2)

您应该使用ViewPager.setOffscreenPageLimit(5)。这将允许您有1个屏幕页面和5个屏幕外页面,全部在内存中。默认值为1,这就是为什么当您到达第3页时,您会看到第0页被删除的原因。

或者,您可以实现instantiateItem来创建/加载每个页面,使用destroyItem来保存PagerAdapter中的每个页面,如http://developer.android.com/reference/android/support/v4/view/PagerAdapter.html中所述

答案 1 :(得分:0)

回答你的问题:

  1. 要显示> 3页,比如6页,您只需在ViewPager上添加6页,ViewPagerIndicator将自动更新以显示6个圆圈(指标)

  2. 要保存数据,我建议您设置一个类似于此处提到的onPageChangeListener https://github.com/JakeWharton/Android-ViewPagerIndicator/blob/master/sample/src/com/viewpagerindicator/sample/SampleCirclesWithListener.java

  3. 您可以定义滚动页面时要执行的任何操作...

        mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageSelected(int position) {
                Toast.makeText(SampleCirclesWithListener.this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
            }
    
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
                //save the data here
            }
    
            @Override
            public void onPageScrollStateChanged(int state) {
            }
        });