Les applications que j'essaie de créer sont un ViewPager
puis se composent de Fragments
.Gérer SQLiteOpenHelper lorsque l'orientation change
Chaque Fragment
a des données différentes, car l'a obtenu de Database
. J'envoie la classe Database de Fragment Activity
à Fragment
à l'intérieur du FragmentStatePagerAdapter
.
Voici le code:
private class ScreenSlidePagerAdapter extends FragmentStatePagerAdapter {
public ScreenSlidePagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return PageFragment.create(position, student, getApplicationContext(), mDbStudent);
}
@Override
public int getCount() {
return NUM_PAGES;
}
}
mDbStudent est la classe de base de données.
J'ouvre mDbStudent à onCreate
Et je ferme mDbStudent quand onDestroy
Le problème que j'ai est quand les changements d'orientation, le mDbStudent
a été détruit mais le fragment
chargement encore la données de la base de données, par conséquent l'erreur se produit.
J'essaie d'obtenir le mDbStudent dans le Fragment
quand onAttach
, mais quand je me déplace les pages très rapide, il se logger déclaré que je ne ferme pas la mDbStudent
Ma question est Est-il un moyen gérer le mDbStudent lorsque l'orientation change?
Merci pour votre réponse, je pense que je n'ai aucun problème avec le 'Context'. Mon problème est quand fermer et ouvrir le 'mDbStudent'. Savez-vous comment le gérer? – Sieryuu
Réponse modifiée. 'onUserLeaveHint()' fonctionne bien pour cela. – 323go
Merci, mais j'ouvre ma base de données l'onCreate, quand l'orientation change, il va s'ouvrir à nouveau. comment le réparer? parce que si elle s'ouvre deux fois le logcat apparaîtra Je ne ferme jamais la DB – Sieryuu