- Forum-Beiträge: 636
14.05.2014, 23:18:40 via Website
14.05.2014 23:18:40 via Website
Hallo zusammen,
ich brauche mal etwas Unterstützung.
Ich habe ein Fragment, welches beim Orientationchange die aktuelle Viewpager Position in das Bundle vom Fragment schreibt:
@Override
public void onSaveInstanceState (Bundle outState)
{
super.onSaveInstanceState(outState);
outState.putInt(VIEWPAGER_ITEM, _viewpager.getCurrentItem());
Log.i(TAG, "onSaveInstanceState() : " + _viewpager.getCurrentItem());
}
Das lese ich dann in der onCreateView()-Methode wieder aus:
//Klassenvariabel zum Halten des letzten Viewpager item
private int _lastPage = 0;
@Override
public View onCreateView (LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
if (null != savedInstanceState)
{
_lastPage = savedInstanceState.getInt(VIEWPAGER_ITEM);
}
return inflater.inflate(R.layout.fragment_slidingtabs, container, false);
}
Nun will ich in der onStart()-Methode den ViewPage per setCurrentItem(_lastPage) auf die Seite vor dem Orientationchange setzten. Nun hat die Variable _lastPage hier aber nun den Wert 0. Ich verstehe nicht warum?
@Override
public void onStart()
{
super.onStart();
_viewpager.setCurrentItem(_lastPage, true);
Log.i(TAG, "onStart : " + _lastPage);
}
@Override
public void onResume()
{
Log.i(TAG, "onResume() : " + _lastPage);
}
Im Log kann ich folgendes sehen:
onSaveInstanceState : 2
onCreateView : 2
onStart : 0
onResume : 0
Die Ausgabe passt zu meiner Vorstellung vom Fragment lifecycle aber irgendwie blick ich meinen Fehler gerade nicht ...
Gruß,
Markus
— geändert am 15.05.2014, 09:14:09
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.