L'emplacement de restauration fragment de l'etat qui est à l'intérieur de ViewPager

Version Courte:

J'ai une Activité qui a un ViewPager. Le ViewPager a trois fragments à l'intérieur. Je suis de stocker les données à l'intérieur de l'fragments par la mise en œuvre de Parcelable et de les stocker à l'intérieur de la botte.

Maintenant, la question est où puis-je restaurer les données. Je suis confus parce que (d'après ce que je sais) le ViewPager est la création d'une nouvelle instance du fragment à chaque fois que je tourne l'écran. (Une nouvelle activité est créée -> nouveau ViewPager -> nouveau Fragment). S'il vous plaît ne me corriger si je me trompe.

Version longue:

Mon ViewPager à l'intérieur de MainActivity

ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new ForecastFragmentPageAdapter(getSupportFragmentManager(),
            ForecastActivity.this));
viewPager.setOffscreenPageLimit(2);

Mon FragmentPagerAdapter

 @Override
public Fragment getItem(int position) {
    if (position == 0) {
        return new NowForecastFragment();
    } else if (position == 1) {
        return new HourlyForecastFragment();
    } else {
        return new DailyForecastFragment();
    }
}

Enregistrement de l'état dans l'un de mes fragments

    public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

    //save data source
    if (nowDataList != null) {
        outState.putParcelableArrayList("savedNowDataList", nowDataList);
    }
}

Merci d'avance!

Mise à JOUR:

Selon d'autres solutions postées à des problèmes similaires, j'ai aussi ajouté setRetainInstance(true); dans le onCreateView de mon fragment. Et c'est ainsi que je suis la sauvegarde et la restauration de l'état:

    @Override
public void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);

    //save data source
    if (nowDataList != null) {
        Log.v("---------------->","saved!");
        outState.putParcelableArrayList("savedNowDataList", nowDataList);
    }
}

et de la restauration onCreateView

 if(savedInstanceState!=null) {
            Log.v("---------------->","restored!");
            nowDataList = savedInstanceState.getParcelableArrayList("savedNowDataList");
            nowForecastAdapter.notifyDataSetChanged();
        }

Je vois les journaux a été déclenché. Pourquoi les données ne sont pas restaurés?

Je pense que cela va vous aider stackoverflow.com/questions/7951730/...
Bien que la solution effacé beaucoup de choses pour moi, je ne suis pas l'initialisation de mes fragments de l'activité. Mon FragmentPageAdapter fait ça. Donc, je ne suis pas sûr de savoir comment puis-je sauvegarder et restaurer mes fragments dans mon activité.
Salut mon Pote, il suffit de définir configchanges = screensize dans le fichier manifeste et il ne sera pas recharger les fragments et l'état actuel sera conservé. Espérons que cela aide 🙂

OriginalL'auteur GauravPandey | 2015-06-23