在打开应用程序

时间:2016-02-05 08:14:44

标签: android android-studio android-viewpager

您好我正在使用ViewPager自动刷10个文本报价。当我打开一个应用程序时,它从IMAGE1开始。然后继续刷到第10个报价。让我们考虑一下,viewpager显示第5个报价。现在我关闭它。当我再次打开应用程序时,它从第一个引号开始。但我需要显示第6个报价。

如何从我之前离开的地方恢复报价。

引用1:

Quote1

引用5:

enter image description here

引用6:

enter image description here

更新

int count=0;
int pager_position;
    private void setTime_ToSlide() {
        TextSlideShowAdapter adapter = new TextSlideShowAdapter(MainActivity.this, title1, title2);
        myPager = (ViewPager) findViewById(R.id.reviewpager);
        myPager.setAdapter(adapter);
        myPager.setCurrentItem(0);


        Log.e("TEST", "Title Value Main " + title1 + " Title 2" + title2);
        timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        if (count1 <= 56) {
                            myPager.setCurrentItem(count1);
                            pager_position = myPager.getCurrentItem();
                            Log.e("Get current item", String.valueOf(myPager.getCurrentItem()));
                            count1++;
                        } else {
                            count1 = 0;
                            myPager.setCurrentItem(count1);
                        }
                    }
                });
            }
        }, 500, 3000);
    }


    @Override
    protected void onPause() {
        super.onPause();
        saveCurrentPagePosition();
        Log.e("Get SharedPreference ", String.valueOf(pager_position));
    }

    @Override
    protected void onResume() {
        super.onResume();
        //...
        setCurrentPagePosition();
    }

    private void setCurrentPagePosition() {
        myPager.setCurrentItem(pager_position);
    }

    private void saveCurrentPagePosition() {
        // store current page position in shared preference
        SharedPreferences.Editor editor = pref.edit();
        editor.putInt("PagerPosition", pager_position);
        editor.commit();
    }

2 个答案:

答案 0 :(得分:2)

将您的页面位置存储在onPause方法的sharedpreferences中,当您返回应用程序从首选项获取页面值并使用该值设置当前项目

 viewPager.setCurrentItem(postion from preferences);

答案 1 :(得分:1)

正如Ajinkya所说,在你的活动/片段的onPause()中将你的寻呼机的当前位置存储在共享偏好中。

@Override
public void onPause() {
    super.onPause();
    saveCurrentPagePosition();
}

获取Activity / Fragment onResume()中存储的位置,并设置ViewPager的当前位置,如

@Override
protected void onResume() {
    super.onResume();
    //...
    setCurrentPagePosition();
}

辅助方法 -

private void setCurrentPagePosition() {
    // fetch from shared prefs or set default as 0
    viewPager.setCurrentItem(postion_from_preferences);
 }

private void saveCurrentPagePosition() {
    // store current page position in shared preference
}