Ich habe eine Aktivität, die Daten in der Datenbank in einer Ansicht Pager in Fragmenten organisiert anzeigen.Fragment in Sichtpager fatalen Fehler beim Neustart der Aktivität generieren
Wenn der Adapter init View Pager, ein Verfahren in jedem Fragment nennen es die ID des Datenbankeintrag retrive und Show weitergeben müssen:
bekommen es public Fragment getItem(int position) {
switch (position) {
case 0: // Fragment # 0 - This will show FirstFragment different title
firstFragment = Fragment.newInstance(1, "Page # 1");
firstFragment.setID(ctx, id);
return firstFragment;
case 1: // Fragment # 0 - This will show FirstFragment different title
secondFragment = Fragment.newInstance(1, "Page # 2");
secondFragment.setID(ctx, id);
return secondFragment;
case 2: // Fragment # 0 - This will show FirstFragment
thirdtFragment = Fragment.newInstance(1, "Page # 3");
thirdtFragment.setID(context, id);
return thirdtFragment;
default:
return null;
}
}
, wenn das Verfahren onCreateView des Fragments genannt retrive Daten aus der Datenbank und init alle Ansicht, die die Daten für den Benutzer:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
DataManager dataManager = new DataManager(mContext);
DataModel data = dataManager.getData(mID);
.....
alles scheint außer gut zu funktionieren, wenn der Benutzer die App neu starten, zum Beispiel war angehalten, wenn innerhalb dieser Aktivität: wenn die Aktivität neu gestartet wurde Ich bekomme einen fatalen Fehler ac Verarbeiten der Daten, als ob die private Variable (des Fragments), die die ID der Daten enthält, aus dem Garbage Collector gelöscht wurde.
Ist meine Vorgehensweise korrekt? Wie kann ich den Fehler verhindern, der beim Neustart der Aktivität generiert wird?
Können Sie bitte den Logcat teilen? –
Ich habe einen möglichen Ansatz für dieses Problem; Lass es mich als Antwort geben, damit du es versuchen kannst; – Eenvincible