Jestem nowy na Androida. Napisałem kilka programów i wypróbowałem je na moim telefonie. Kiedy przełączam orientacje, mój telefon restartuje program. Wszystkie moje zmienne zostaną zresetowane. W rzeczywistości jedyną rzeczą, która się nie resetuje, jest tekst w widokach edycji tekstu. Co to powoduje? Jak mogę to zatrzymać? Próbowałem go szukać w google i przepełnienie stosu, ale widzę tylko, jak orientacji widoku od zmieniania wszystkich razem. W jednym programie próbowałem nawet ustawić zmienne za pomocą metody get text, ale to nie działa.Utrata wartości zmiennych przełączanie orientacji
Odpowiedz
Kiedy przełączam orientacje, jego telefon uruchamia ponownie program.
Dobrze być dokładnym, aktualnie widoczny Activity
jest całkowicie zniszczony i odtworzony. Inne elementy twojej "aplikacji" mogą lub nie mogą mieć wpływu.
Co to powoduje? Jak mogę to zatrzymać?
Jest to zgodne z projektem i do jego zatrzymania, możesz lub nie chcesz tego zrobić.
Jak już wspomniano, możliwe jest określenie, że użytkownik chce samodzielnie obsługiwać zmiany konfiguracji (takie jak orientacja), a nawet wymusić tylko jeden (np. Krajobraz lub portret).
W wielu przypadkach twórca aplikacji może jednak zmienić układ na podstawie tego, czy urządzenie znajduje się w jednej orientacji, czy w innej. Niektóre układy mogą działać dobrze w układzie pionowym, ale nie w układzie poziomym (lub odwrotnie), a celem zaprojektowanego podejścia (zniszczenie/odtworzenie aktualnie widocznego Activity
) jest przystosowanie się do tego.
Jeśli dev nie zdecyduje się na zmianę konfiguracji lub wymusi określoną orientację, prawidłowym sposobem postępowania jest upewnienie się, że wszystkie dane wprowadzone do "zmiennych" elementów interfejsu użytkownika (takich jak EditTexts) są poprawnie zapisane i odtworzone po zmianie orientacji.
Aby to osiągnąć, niezbędne jest zrozumienie cyklu życia Activity
, ponieważ wykorzystuje się różne metody Activity
, które są wywoływane w całym cyklu życia w celu zapisywania/przywracania danych.
Niezbędne czytanie ...
Dzięki za miłą, dokładną odpowiedź i warunki! Robi kompletny, ponieważ, dlaczego. Muszę być szczery. Zgubiłem się czytając strony programistyczne i nie rozumiem większości z tego, co mówią, chyba że mam dobrą podstawową wiedzę i zrozumienie przed ręką. Najlepiej dowiaduję się z przykładów i samouczków. I PRZEDMIOTU gra z metodami. – JBreezy901
@ JBreezy901: Dokładnie rozumiem, co masz na myśli na temat stron dla programistów. Byłem w tym samym miejscu 16 miesięcy temu, kiedy po raz pierwszy zacząłem z Androidem i nawet teraz prawdopodobnie przerzuciłem tylko niewielki procent tego, co tam jest (i tylko takie rzeczy, które do tej pory potrzebowałem). Dokumentacja Podstawy Aplikacji wraz z tą dla Aktywności i jej cyklu życia zdecydowanie warta jest zakładek. Cieszę się, że mogłem rzucić trochę światła, dobrze się bawić. – Squonk
Jest to zgodne z projektem, onCreate
zostanie wywołany po zmianie orientacji. Jeśli nie jest to pożądane, możesz ustawić, aby nie reagował na zmiany orientacji w AndroidManifest.xml
, w związku z czym aktywność nie zostanie odtworzona, ustawienie aktywności ograniczy ją do trybu pionowego.
Aby uzyskać więcej informacji na temat ustawień, zobacz this.
Upewnij się, że zaimplementowałeś onSaveInstanceState
i przygotuj się na przywrócenie swojej aktywności z Bundle
w onCreate
, a wszystko będzie gotowe. będą one wywoływane podczas rotacji, więc będziesz miał później nową aktywność, ale jeśli zapisałeś swój stan i możesz go przywrócić, nic się nie martwisz.
Nadal chcę, aby mój program dostosował swój układ przy zmianie z portretu i krajobraz. Wszystko, co chcę zachować, to moje zmienne. Szczególnie Ints. Czy to zadziała? – JBreezy901
tak, jeśli umieścisz wszystkie zmienne w tym pakiecie, a następnie w metodzie "onCreate" pobierz je z pakietu zamiast inicjować swoją aktywność od zera, wszystko będzie gotowe. – dldnh
See this answer: Znajdź odpowiedź od Roberta. Dokładnie to musisz zrobić.
[permalink] (http://stackoverflow.com/a/4101501/1318194) – stackunderflow
Lepiej dodać android:configChanges="keyboardHidden|orientation|screenSize" to
AndroidManifest.xml in
aktywność
- 1. Utrata orientacji obrazu podczas konwertowania obrazu na obraz CGImage
- 2. Przełączanie fragmentów lub działań (tj. Układów) na zmianę orientacji
- 3. Wartości domyślne zmiennych instancji i zmiennych lokalnych
- 4. Deklarowanie zmiennych bez wartości
- 5. Wartości zmiennych debugujących NetBeans
- 6. "Piping" wartości do zmiennych Bash
- 7. Ehcache utrata obiektów
- 8. Asynchroniczna libpcap: utrata pakietów?
- 9. Utrata działającego wywołania podprocesowego
- 10. Przełączanie wyliczenia w freemarker
- 11. Funkcja zamykania Pythona utrata zewnętrznej zmiennej dostępu
- 12. codeIgniter: utrata danych sesji po zalogowaniu
- 13. Przełączanie bez obudowy
- 14. Przełączanie wartości logicznej w bazie danych Firebase Realtime
- 15. Struktura obiektu utrata Sql Dokładność DateTime
- 16. WebAPI, JSON.Net i utrata dokładności dziesiętnej
- 17. Uiwebview i ogromna utrata pamięci
- 18. Aplikacja klienta/serwera - utrata bajtów
- 19. Błąd Java: możliwa utrata precyzji
- 20. Nie można wyświetlić wartości zmiennych podczas debugowania
- 21. Wstaw wartości zmiennych w środku ciągu
- 22. Przypisywanie tej samej wartości do wielu zmiennych
- 23. Wartości rejestrów zmiennych wewnątrz modułu cieniującego wierzchołków
- 24. JavaScript: Jak stale monitorować wartości zmiennych
- 25. Jak wyświetlić wartości zmiennych w KDevelop?
- 26. wstaw wartości zmiennych do łańcucha w pytonie
- 27. Jak wydrukować wartości zmiennych uint32_t i uint16_t?
- 28. obserwować wywołania funkcji i wartości zmiennych?
- 29. Jak dołączyć wartości do zmiennych xcconfig?
- 30. Przypisywanie pojedynczej wartości do wielu zmiennych
Zobacz moją odpowiedź tutaj http://stackoverflow.com/questions/6764086/setting-the -background of-an-activity –