W przypadku zmiany orientacji Aktywność zostanie odtworzona, a okno Data czasu również zostanie odtworzone. Chcę zapisać okno dialogowe State of Date Time, które zostało zmienione przez użytkownika.Jak zachować stan datetime Okno dialogowe dotyczące zmiany orientacji?
Zanim odłożę okno dialogowe, chcę zachować stan okna dialogowego Data.
Uwaga, mogę zamknąć okno dialogowe na stronieSaveInstanceState, gdzie mam dostępny pakiet. Ale jest również wywoływana, gdy działanie przechodzi w stan wstrzymania, i w tym przypadku nie chcę odrzucać okna dialogowego. Dlatego zdecydowałem się go odrzucić na metodzie onDestroy, ale nie mam tam obiektu pakietu. Dlatego właśnie stoję w obliczu tego problemu. Czy istnieje sposób dostępu do pakietu w OnDestroy? Albo inna sugestia dotycząca mojego problemu zostanie doceniona.
@Override
protected void onDestroy() {
if(dateTimeDialog !=null && dateTimeDialog.isShowing())
{
//<HERE I WANT THE STATE TO BE SAVED IN THE BUNDLE>
dateTimeDialog.dismiss();
}
super.onDestroy();
}
Zasadniczo możemy zablokować wniosek, jeśli użytkownik odejść od naszej aplikacji, a na odblokować ekran i dialogowe on ogląda zostają wznowione. A jeśli odrzuciliśmy okno dialogowe onSavedInstanceState, po odblokowaniu aplikacji wywoła on onRestart, uruchomi i wznowi metody, gdzie żaden z nich nie ma instancji Pakietu jako parametru.
Ponadto mamy oddzielne układy dla krajobrazu & portret, z powodu których nie możemy ustawić configChanges = "orientation" w pliku manifestu.
'Klasa DatePickerDialog' zawiera metody' onSaveInstanceState() 'i' onRestoreInstanceState() '. –