Skocz do zawartości
blokern

przejscie miedzy ekranami (layoutami)?

    Rekomendowane odpowiedzi

    Czesc, pisze aplikacje w ktorej jest

    1 ekran startowy

    2 ekran do wyboru obiektu

    3 ekran z opisem wybranym obiektem

    wszystkie powyzsze roznia sie wygladem

    na ekranie startowym sa buttony: start, wyjdz itp

    na drugim obiekty rozrzucone po ekranie a na trzeciem wybrany z opisem

    moje pytanie brzmi: w jaki sposob przypisac akcje do przycisku start zeby po nacisnieciu przejsc do ekranu numer 2 ?

    rozumiem ze dla tych trzech ekranow musze stworzyc 3 xml z layoutami? i czy wystarczy utworzyc pliki .xml i wgrac je do folderu res/layout/ czy powinienem jeszcze kopiowac odpowiedni-plik.class w folderze bin/classes/example/nazwa/

    z gory dziekuje za wyczerpujaca odpowiedz

    pzdrawiam

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Gimer

    1. Example to przykład, aby później stworzyć plik apk (albo wtrzucić na google, nie pamiętam już) musisz podać inną nazwę.

    2. Layout możesz stworzyć jeden dla wszystkich activity, albo nawet więcej niż masz klass i później je łączyć. W onCreate masz setContentView(R.layout....) tam ustawiasz xml "główny".

    3. Z racji początków radzę Ci utworzyć tyle layoutów ile masz ekranów i tyle samo klas dziedziczących po Activity.

    4. Przejście pomiędzy Activity realizujesz poprzez uruchomienie nowego intentu:

    Intent i = new Intent(getApplicationContext(), NazwaKlasyZDrugiegoActivity.class);

    finish(); // jeśli chcesz, zlikwidować poprzednie activity, aby nie było go na stosie.

    startActivity(i);

    5. W razie większych pytań służę pomocą ale już płatną, bo kurcze muszę w końcu zacząć zbierać na własne m :)

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Nerus

    Ok, przeczytałem, mam ogólnie problem z przełączaniem layoutów. Aplikacja bazuje na jednym activity oraz na jednym pliku xml. Istnieje layaut główny (root) i w tym layoucie istnieją poszczególne layouty. Używam findViewByID(R.id.layaut).visibility(View.Visible) resztę na Invisible. Z tym że to nie działa.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Cubaza

    Tak nie rób. INVISIBLE, ukrywa a nie usuwa. Czyli layoutu nie widać, ale on zajmuje miejsce. Jeśli te Twoje layouty są zrobione na cały ekran to nigdy nie zobaczysz wszystkich. Spróbuj albo View.GONE jako ukrywanie layoutów, albo podmieniaj ekrany a nie je ukrywaj/usuwaj, albo zrób to tak jak powiedział kolega wyżej czyli jeden ekran jeden layout jedna aktywność.

    Wysłane z mojego Nexus 4 przy użyciu Tapatalka

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Nerus

    W przypadku GONE będę mógł wrócić z powrotem np. do menu logowania ?

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Cubaza

    Słuchaj. Zacznijmy od tego, że ja nie wiem kompletnie co Ty robisz, jak to robisz i czy robisz poprawnie. Więc nie wiem czy wrócisz, nie wiem gdzie przejdziesz, nie wiem jak przejdziesz. Niestety bez kodów to ja mogę sobie wróżyć jak wróżbita Maciej... Andrzejki są w weekend i może wtedy nauczę się czytać w myślach kogoś. Jak dobrze oprogramujesz to po usunięciu layoutu wrócisz. Jednak to zależy od kodu.

    Zrób 3 pliki layoutów z ekranami i 3 aktywności. Wtedy będziesz mógł robić dokładnie wszystko co chcesz. Jedna aktywność i jeden layout zmieniany przez visible to za dużo zbędnego kodu.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    Nerus

    Nie chce się bawić w 3 aktywności, wole zrobić to na layoutach, tym bardziej że aplikacja nie jest tak duża.

    Potrzebuje zrobić aplikacje 3x Layout + 1x Activity.

    Layout 1 wyświetlić panel logowania, Layout 2 wyświetlić listę plików i folderów z FTP, Layout 3 wyświetlić wybrany plik graficzny. Oczywiście po wyświetleniu pliku graf. chciałbym wrócić do poprzedniego layoutu (przycisk back). Może jeszcze jeden layout związany z ustawieniami.

    Moje przemyślenie odnośnie przechodzenia pomiędzy layoutami:

    RelativeLayout mainLayout = (RelativeLayout) activityManager.getActivity().findViewById(R.id.layout_login);
    mainLayout.removeAllViews();
    LayoutInflater inflater = activityManager.getActivity().getLayoutInflater();
    mainLayout.addView(inflater.inflate(layoutId, null));

    Tylko teraz tak, jeżeli mój początkowy layout to layout_login z którego usuwam wszystkie widoki i do którego wstawiam cały iny layout layoutId tzn. że mam layout w layoucie. A interesuje mnie przełączenie layoutu, załadowanie nowego, np. podczas kliknięcia przycisku.

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    asmok

    Wybrałeś trudniejszy sposób bo aplikacja nie jest duża? Masochista.

    Jeśli upierasz się przy pojedyńczym activity, to możesz użyć fragmentów. Przełączanie jest banalne. Np.

    Fragment fragment = new TwojFragment();

    getFragmentManager().beginTransaction().replace(R.id.content_frame, fragment).commit();

    I wszystko w jednym activity :)

    Edytowane przez wdarku
    nie cytujemy poprzedzającego posta

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x