Przekazywanie dodatków i obracanie ekranu
Tego rodzaju pytania pojawiają się okresowo. Przepraszam, jeśli zostało to wcześniej opisane, ale jestem nowicjuszem i nie mogłem znaleźć odpowiedniej odpowiedzi. Zajmuje się poprawną implementacją komunikacji między klasami i zajęciami.
Zrobiłem aplikację galerii. Ma 3 główne działania:Main
jeden, aby wyszukać nazwy plików za pomocą wzorca; zaThumb
jeden, który pokazuje wszystkie obrazy, które pasowały do wzorca jako miniatury w widoku siatki, aPhoto
aktywność, która otwiera obraz w pełnym rozmiarze po kliknięciu kciukiemThumbs
. Przechodzę doPhoto
aktywność za pośrednictwemIntent
nazwy plików (tablica) iposition
(naint
) klikniętego kciuka w widoku siatki.
Ten trzeciPhoto
aktywność ma tylko jeden widok na to:TouchImageView
, które zaadaptowałem do poprzedniego / następnego przełączania i powiększania w zależności od tego, gdzie krótko klikniesz na obraz (lewy, prawy lub środkowy). Ponadto dodałem longclick listener doPhoto
aby wyświetlić informacje EXIF.
Rzecz działa, ale nie jestem zadowolony z wdrożenia ... Niektóre rzeczy nie są w porządku.
Jednym z problemów, które napotykam, jest to, że jeśli kliknę po prawej stronie obrazu, aby zobaczyć następny wPhoto
aktywność, przełącza się dobrze (position++
), ale podczas obracania urządzenia oryginalny wposition
pojawia się.
Dzieje się takPhoto
jest niszczony podczas obracania obrazu iz jakiegoś powodu ponownie się uruchamia, bez posłuszeństwasuper.onCreate(savedInstanceState)
, ładowanie ponownie Dodatki (position
zmienił się tylkoPhoto
, nie na działalności rodziców).
Próbowałem zstartActivityForResult
zamiaststartActivity
, ale zawiodło...
Oczywiście mogę zrobić coś wymyślonego, aby uratowaćposition
dane, ale powinno być coś „konceptualnego”, którego nie rozumiem, jak działają działania, i chcę to zrobić dobrze.
Czy ktoś może mi wyjaśnić, co robię źle, która jest najlepszą metodą wdrożenia tego, czego chcę i dlaczego?
Wielkie dzięki!!!