Probleme mit ViewPager und Activity

JUserToto

Aktives Mitglied
Hallo zusammen,

ich habe eine Activity, die einen Viewpager mit 3 Fragments enthält.
Das 2. Fragment (Also die mittlere Seite des Viewpagers) enthält eine Liste, die sich bei jedem Swipen (also Seitenwechsel) aktualisieren soll.

Das hier ist die getItem Methode des PagerAdapters:
Java:
@Override
public Fragment getItem(int pos) {
	if (pos == 1) {
		listFragment = new ListFragment();
		return listFragment;
	} 
}

Dem Viewpager wurde ein Listener hinzugefügt:

Java:
vp.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
			@Override
			public void onPageSelected(int position) {
				System.out.println("listFragment null: "
						+ (listFragment == null));
	
				if (listFragment != null) {
					listFragment.updateList();
				} 
			}
});

Mein Problem ist nun: Das funktioniert in 99% der Fälle. Lege ich das Handy aber mal einige Stunden bei Seite und öffne die App wieder, funktioniert es plötzlich nicht mehr. Das listFragment ist "null", obwohl der ViewPager immernoch korrekt dargestellt wird. Die Liste wird einfach nicht aktualisiert (ist aber immernoch zu sehen, wie kann sie dann null sein?).

Ich kann diesen Fehler nicht einmal rekonstruieren, da ich nicht weiß, wann genau das ganze geschieht.

Hat jemand eine Idee?

lg Toto
 
Zuletzt bearbeitet:

dzim

Top Contributor
Hm... Bin mir bei der Problematik einfach nicht sicher. Überlege schon eine ganze Weile, was ich da schreiben könnte.

Vielleicht erst einmal ein paar Tipps vorab:
Java:
if (pos == 1) {
	listFragment = new ListFragment();
	return listFragment;
}
Würde ich nicht machen: Jedes mal, wenn dein Adapter angefragt wird, erstellt er eine neue Instanz des Fragments.
Ich halte in meinem Adapter immer eine Liste und in der #getItem-Methode frage ich nur das Fragment an der Position aus der Liste ab.

Zweite Sache: Ist dein ViewPager in einem Fragment? Was ich meine: Sind deine Fragmente des ViewPagers wiederum Teil eines Eltern-Fragments? Wenn ja: Verwende in jedem Fall den childFragmentManager und nicht den "normalen" - das hat mir schon Probleme (Null-Pointer o_O) beschert.

Such das Fragment einmal über den besagten childFragmentManager:
Dazu musst du FragmentManager#findFragmentByTag(String tagId) nutzen. Das Format des Tags ist "android:switcher:%d:%d"
Das erste %d muss durch die ResourceId deines ViewPagers ersetzt werden, das zweite %d mit dem Index (oder der ID) des zu suchenden Fragments.
Bsp: Android getting fragment that is in FragmentPagerAdapter - Stack Overflow
Es gibt aber auch Bedenken, diesem Ansatz gegenüber:
Is it safe to use the TAG `android:switcher: + R.id.ot_pag_main + :0` to find a fragment? - Stack Overflow
Ich fahre aber eigentlich gut mit dem Ansatz!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Android Probleme mit ViewPager? Android & Cross-Platform Mobile Apps 5
J Android Probleme mit BLE-Notify Android & Cross-Platform Mobile Apps 2
J Android Probleme mit der Realm Datenbank Android & Cross-Platform Mobile Apps 3
J Android Probleme mit Navigation-Fragments? Android & Cross-Platform Mobile Apps 0
N Probleme mit custom dynamic ListView Android & Cross-Platform Mobile Apps 15
B Android Probleme mit Android Studio Android & Cross-Platform Mobile Apps 6
B Android Probleme mit Realm Datenbank Android & Cross-Platform Mobile Apps 2
B Android Probleme mit ArrayList Android & Cross-Platform Mobile Apps 6
J Android Probleme mit FileProvider Android & Cross-Platform Mobile Apps 1
B Probleme mit Firebase Authentication Android & Cross-Platform Mobile Apps 25
H Android Probleme mit SearchView in ArrayAdapter Android & Cross-Platform Mobile Apps 7
ATZENPOWER Android Probleme mit mobilen Daten via lte Android & Cross-Platform Mobile Apps 10
S Android Probleme beim Verbinden mit einer HTTPS Seite Android & Cross-Platform Mobile Apps 4
B Android Probleme mit RealmObject? Android & Cross-Platform Mobile Apps 1
M Android ExpandableListView merkwürdige Probleme Android & Cross-Platform Mobile Apps 20
F Probleme mit Google-Maps Android & Cross-Platform Mobile Apps 0
B Android Probleme mit Eclipse? Android & Cross-Platform Mobile Apps 6
E MAVLINK Probleme Android & Cross-Platform Mobile Apps 1
C Android Probleme mit JavaMail Android & Cross-Platform Mobile Apps 5
B Android Probleme mit Facebook-SDK? Android & Cross-Platform Mobile Apps 1
D Android Probleme mit info/warning (1, 902) Android & Cross-Platform Mobile Apps 4
D Android Gallery Probleme Android & Cross-Platform Mobile Apps 3
B Probleme mit App auf Galaxy S3? Android & Cross-Platform Mobile Apps 13
S Hat der AVD-Manager Probleme mit GPS? Android & Cross-Platform Mobile Apps 5
P Probleme mit xml-Layout Android & Cross-Platform Mobile Apps 2
P Android Probleme mit Spinner Android & Cross-Platform Mobile Apps 3
F Layout mit listViews (Scrolling-Probleme) Android & Cross-Platform Mobile Apps 2
A Android Probleme mit Dialog Android & Cross-Platform Mobile Apps 4
U SQLite-Datenbank Probleme Android & Cross-Platform Mobile Apps 8
T Android Probleme bei Facebook Integration Android & Cross-Platform Mobile Apps 5
tfa Android Layout-Probleme: View programmatisch erweitern (addContentView) Android & Cross-Platform Mobile Apps 7
A Probleme mit ListView / ArrayAdapter Android & Cross-Platform Mobile Apps 3
A Probleme mit Form.isShown Android & Cross-Platform Mobile Apps 9
A Probleme mit Calendar auf dem Handy Android & Cross-Platform Mobile Apps 3
U Probleme mit der drawString Methode bei Canvas Android & Cross-Platform Mobile Apps 8
P Probleme mit dem Deployment Android & Cross-Platform Mobile Apps 3
P Probleme mit Streams Android & Cross-Platform Mobile Apps 4
C 2 kleine Probleme (Datei lesen, String durchsuchen) Android & Cross-Platform Mobile Apps 16
G Proguard Obfuscator macht Probleme Android & Cross-Platform Mobile Apps 2
P Probleme mit RMS Android & Cross-Platform Mobile Apps 5
P ViewPager Problem Android & Cross-Platform Mobile Apps 1
B Android Fragen zu ViewPager? Android & Cross-Platform Mobile Apps 0
E Android Fragmentanimation mit ViewPager - Architekturproblem? Android & Cross-Platform Mobile Apps 3
N Viewpager Fragments replace Android & Cross-Platform Mobile Apps 2
W JSONARRAY per Intent an andere Activity übergeben und umwandeln ggbf. Android & Cross-Platform Mobile Apps 1
M Activity einer anderen App mit result Android & Cross-Platform Mobile Apps 2
CT9288 Methode von Fragment durch Activity rufen scheitert Android & Cross-Platform Mobile Apps 7
ruutaiokwu Android Daten von "Activity A" nach "Activity B" umleiten? Android & Cross-Platform Mobile Apps 13
L Android Lockscreen-Sperrmuster activity verwenden Android & Cross-Platform Mobile Apps 1
J Android App stürzt ab wenn neue activity gestartet Android & Cross-Platform Mobile Apps 6
D Android Activity wechseln per Button Android & Cross-Platform Mobile Apps 3
P Android Android-App Crash - Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
S Neue Activity lässt sich nicht starten Android & Cross-Platform Mobile Apps 28
B Android Activity nach gedrückte Returntaste weiterlaufen lassen Android & Cross-Platform Mobile Apps 2
B Android In einem View der ersten Activity zweite anzeigen Android & Cross-Platform Mobile Apps 2
G Accelerometer ohne Activity Android & Cross-Platform Mobile Apps 8
J Android BroadcastHandler extends BroadcastReceiver; auf Activity zugreifen? Android & Cross-Platform Mobile Apps 5
K Android Übergeordnete Activity herausfinden? Android & Cross-Platform Mobile Apps 7
W Android Designfrage / Layout / Activity / Fragments Android & Cross-Platform Mobile Apps 2
B Login Activity Android & Cross-Platform Mobile Apps 1
M Android Suche Activity/View Namen Android & Cross-Platform Mobile Apps 1
K Unbekannte Menge von Daten (Strings oder Ints) an Activity übergeben Android & Cross-Platform Mobile Apps 0
M Fehler ohne Sinn? java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 11
S Android Eclipse erstellt keine main Activity Android & Cross-Platform Mobile Apps 4
B java.lang.RuntimeException: Unable to start activity ComponentInfo Android & Cross-Platform Mobile Apps 2
K Android Activity for result aus Dialog Android & Cross-Platform Mobile Apps 1
S Android "Weiches wechseln" zwischen Views in einer Activity Android & Cross-Platform Mobile Apps 3
D Android Activity mit mehreren Views "spliten" Android & Cross-Platform Mobile Apps 10
G Activity-Wechsel bitte ohne Notification Android & Cross-Platform Mobile Apps 6
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
D Android Neue Activity im TabWidget laden Android & Cross-Platform Mobile Apps 8
S Android In Service überprüfen ob eine Activity gebunden ist? Android & Cross-Platform Mobile Apps 6
T Android Activity finished testen Android & Cross-Platform Mobile Apps 5
T Activity / Application fundamentals Android & Cross-Platform Mobile Apps 4
M Activity wechseln aus List View mit Android & Cross-Platform Mobile Apps 2
G extends Activity für Berechnungen? Android & Cross-Platform Mobile Apps 7
G Daten von einer Activity zur nächsten übergeben Android & Cross-Platform Mobile Apps 6
G selbes Menü auf jeder Activity Android & Cross-Platform Mobile Apps 4
C Activity ohne Aktion starten Android & Cross-Platform Mobile Apps 8
C Android Kommunikation zwischen Service und Activity Android & Cross-Platform Mobile Apps 8
Maxim6394 [ Android ] Activity ändern Android & Cross-Platform Mobile Apps 9
A Activity Intent 'source not found' Android & Cross-Platform Mobile Apps 4
A Android Activity Variablen-Initialisierung Android & Cross-Platform Mobile Apps 8
A Beenden einer 2ten Activity Android & Cross-Platform Mobile Apps 3
W Standard Gallery Activity? Android & Cross-Platform Mobile Apps 22
schlingel Android: Overlay in Activity Android & Cross-Platform Mobile Apps 3
G Activity beenden Android & Cross-Platform Mobile Apps 2

Ähnliche Java Themen

Neue Themen


Oben