Pracuję nad przeniesieniem aplikacji z systemu Windows Mobile na system Android i napotkałem na mały problem. Istniejąca aplikacja wykorzystuje wzorzec MVP i ma odrębne klasy "prezenterów", które mają być ponownie wykorzystane w porcie (jest to dość rozbudowana aplikacja i przepisanie jej po prostu nie jest możliwe, a kod C# jest ponownie wykorzystywany przy użyciu mono dla Androida). Wychodzą one na implementację interfejsu, który w Androidzie osiągnąłem, tworząc działania, które implementują odpowiedni interfejs, tworząc prezentację i podając się za argument. To wszystko wydaje się działać dobrze dla naszych celów lub było, dopóki nie pojawiła się kanapka z lodami i próbowałem ją zaimplementować za pomocą fragmentów.Adapting Model View Presenter pattern to Android Z fragmentami Tabulatory
Wiele działań wykorzystuje karty, a żeby użyć paska akcji i niektórych innych nowych funkcji, staram się przekonwertować działania z kartami na fragmenty z kartami za pomocą narzędzia ViewPager, i to tutaj uderzam trochę problemów. Z tego, co przeczytałem, implementowanie każdej karty jako fragmentu wydaje się być preferowaną metodą, ale jestem zdezorientowany, jak dokładnie mogę pozwolić prezenterowi na komunikowanie się z fragmentem poprzez działanie. W tej chwili prezenter nazywa metody interfejsu działania, które następnie bezpośrednio uzyskują dostęp do błystek, widoków tekstowych itp., Aby uzyskać i ustawić wartości zgodnie z wymaganiami. Ponieważ każdy z tych elementów jest zadeklarowany w działaniu, jest to banalne. Jeśli przeniesię wszystkie te elementy ui do fragmentów, nie wydaje mi się, żebym mógł uzyskać do nich dostęp bez implementacji zupełnie nowego zestawu interfejsów między każdą czynnością a fragmentem. Próbowałem generować odwołanie w działaniu do elementów ui w fragmentach (pobierając widok fragmentu root i znajdując widok, który chcę wewnątrz), jednak viewpager nie zawsze ładuje fragmenty, więc to nie zadziała, a nawet gdy je załadował, układ nie zostanie napompowany, dopóki działanie nie zostanie wykonane, więc zawsze zwracane są wartości puste.
Wiem, że to trochę dziwne pytanie, ale jak mogę pozwolić moim klasom prezenterów na interakcję z elementami interfejsu użytkownika przechowywanymi teraz w osobnych zakładkach fragmentów? Czuję, że muszę podchodzić do tego w zupełnie niewłaściwy sposób, ale po prostu nie widzę, jak to powinno być zrobione, więc jeśli ktoś mógłby zaoferować radę, jak mógłbym to zrobić, byłoby wspaniale.
Mając ten sam dylemat, używanie MVP z niestandardowymi przedmiotami w RecyclerView i ViewPager jest bolesne w @ss do pracy z –