如何引用先前viewpager中的数据

时间:2014-10-27 07:14:04

标签: android android-fragments android-viewpager

我有一个使用片段和viewpager的android项目 我正在为每个页面使用单独的倒数计时器,该计时器仅在页面视图位于屏幕上时运行。首先,每个页面的时间是相同的,但过了一会儿,页面1可能还剩20秒,第2页60秒,依此类推。

我的问题是,当用户滑动到下一页时,我不知道如何节省剩余时间。我正在使用具有以下代码的onpagestatelistener,但这会保存questionId的新值和新时间的旧值。如何在用户刷卡之前引用questionId的值和页面中匹配的newtime-value?

viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    public void onPageScrollStateChanged(int state) {
        if (state == ViewPager.SCROLL_STATE_DRAGGING) {
            saveTime();
        }
    }
    public void onPageScrolled(int position, float arg1, int arg2) {}
    public void onPageSelected(int pos) {
        questionId =  mQuestions.get(pos).getNr()
        runTime();
    }
});

public void saveTime(){
    mQuestions.get(questionId).setTime(newTime);
}

public void runTime(){
    if (mTimer != null) {
        mTimer.cancel();
        mTimer = null;
    }
    mTimer = new CountDownTimer(90000, 1000) {//MillisInFuture, countDownInterval
        public void onTick(long millisUntilFinished) {
            newTime = (millisUntilFinished/1000);
        }
        public void onFinish() {
        }
    }.start();
}

1 个答案:

答案 0 :(得分:0)

首先,您可以使用SharedPreferences

此外,当然您可以将数据保存在用于ViewPager的适配器中,您可以将这些数据保存在DB中或在父Activity或Fragment中创建一些singleInstance。