android: setContentView kilka razy

0

Chciałbym się dowiedzieć czy poprawnie będzie: chce mieć kilka różnych widoków, z różnymi polami i buttonami. Nie chce tworzyć odrębnej klasy do każdego. W związku z tym czy jest możliwość sterowania różnymi plikami .xml w folderze layout z poziomu tej samej klasy?

przykładowo aplikacja się włącza to ustawiam:
setContentView(R.layout.Glowna);
kliknie ktos button "next"
to na poczatku funkcji ze zdarzeniem klikniecia ustawiam
setContentView(R.layout.page2);
i tak dalej.
dobrze myślę czy w ogóle nie tędy droga?

0

Nie tędy droga - utrzymanie tego będzie ciężkie, kod brzydki i mogą wystąpić różne dziwne problemy. Lepiej użyć do tego fragmentów.

Edit: ewentualnie ViewAnimator

0

fragmentów? ale konkretniej co ?
Activity?

0

no tak, to czytałem ale z tego co widze to jest to dalej tworzenie kolejnych klas, czyli dla mnie pojawia się problem że nie wiem jak mam dane przenosić...

w skrócie:

  1. odpalam aplikacje, button "start", wciskam ->
  2. pojawia sie okno w ktorym mam pola do uzupełnienia i button "zapisz", klikam i ->
  3. pojawia sie okno z napisem "zapisano" oraz buttonem "Dalej", klikam i ->
  4. pojawia sie okno z polami ktore wypalniam i buttonem "zapisz" (inne pola) i po kliknieciu zapisuje dane do pliku i koniec aplikacji.

obecnie mam to wszystko w jednej duzej klasie, kazdy przycisk "chowa" stare textboxy i pokazuje nowe, chowam sam siebie, oraz pokazuje nowy przycisk i takie coś mam.

0

Ile tych danych masz do przeniesienia? Najprościej pakować dane do obiektów Bundle i wrzucać do fragmentów jako argumenty albo zapisywać w Shared Preferences.

0

7 textboxow, 5 checkboxow+jeden textbox w tej samej grupie, . oraz na drugiej formie mam 2 grupy checkboxow, 3 pola tekstowe, i jedno "true/false"

0

Hm jeśli dobrze rozumiem to od biedy możesz zrobić tak:

  • każdą formatkę pogrupuj i umieść w osobnych ViewGroup
  • na reakcję przycisku pokazywanie/chowanie każdej z grup

ale z tego co widzę to masz już tak zrobione, dobrze myślę? :) Jeśli chcesz mieć porządek w xml'u to każdą grupę umieść w osobnym pliku xml i do głównego layoutu dodaj za pomocą <include />

Tak czy siak, ja bym z formatki zrobil jakiś custom view - duże klasy to zło. A jeszcze lepiej poszukać liba do tego ;)

0

no prawie dobrze... po prostu nie mam ich w ViewGroup... tylko po kolei, i owszem kod w klasie wygląda koszmarnie :/ jeśli mam 10 elementów, to najpiew musze je wyłączyć, potem włączyć, potem znowu wyłączyć itd. więc 3 operacje do 30 linii kodu jak nic :/ no ale nie wiem po prostu jak to szybko zrobić. bo to ma być prosta aplikacja nic więcej, w przyszłości też nie będzie ona powiększana ani nic.

0

Umieść je w ViewGroup, ukrycie grupy powoduje ukrycie wszystkich elementów które do niej należą. To takie rozwiązanie na szybko. A co do Twojego ostatniego zdania: taa.. nie raz to słyszałem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1