Skocz do zawartości
1haker

Jedno Activity i kilka layoutów

    Rekomendowane odpowiedzi

    1haker

    Witam, prosto z mostu: Robię aplikację dla siebie i mam sytuację gdzie będę miał dużą liczbę postaci, a każda z postaci będzie miała swoje Activity + do tego w tym Activity będzie można po kliknięciu przycisku przejść do innego widoku. Nie wiem do końca jaki sposób będzie najlepszy na rozwiązanie tego. Czy dobrze kombinuje, że dla każdej postaci inne Activity i oddzielne layout, czy da się to jakoś inaczej zrobić? Chce, aby po prostu po wejściu w daną postać pokazał się Layout 1 i na górze mamy przyciski, które przekierują nas do Layout 2, i tak samo z Layout 2 mamy te same przyciski, którymi można wrócić do Layout 1.

    Tak jak jest to zrobione teraz nie działa. Z góry dziękuje chociaż za naprowadzenie jakim sposobem to rozwiązać :)

    Kod dla Activity: 

    public class ZyraActivity extends MenuActivity {
    
        Button buildBtn, storyBtn;
        ConstraintLayout zyra_build_lay, zyra_story_lay;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_zyra_build);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    
            buildBtn = findViewById(R.id.buttonShowHideBuild);
            storyBtn = findViewById(R.id.buttonShowHideStory);
    
            zyra_build_lay = findViewById(R.id.zyra_build_layout);
            zyra_story_lay = findViewById(R.id.zyra_story_layout);
    
            buildBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    zyra_story_lay.setVisibility(view.GONE);
                    zyra_build_lay.setVisibility(view.VISIBLE);
                }
            });
    
            storyBtn.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    zyra_story_lay.setVisibility(view.VISIBLE);
                    zyra_build_lay.setVisibility(view.GONE);
                }
            });
    
        }
    
    }

    Kod dla Layout 1:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
        android:id="@+id/zyra_build_layout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/gradient_darkpurple_lightpurple"
        tools:context=".Champions_Package.ZyraActivity"
        tools:layout_editor_absoluteY="81dp">
    
    
        <ImageView
            android:id="@+id/champBuild"
            android:layout_width="0dp"
            android:layout_height="93dp"
            android:layout_marginTop="196dp"
            android:foregroundGravity="center"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/zyrabuild" />
    
        <ImageView
            android:id="@+id/champSpells"
            android:layout_width="137dp"
            android:layout_height="78dp"
            android:layout_marginBottom="12dp"
            app:layout_constraintBottom_toTopOf="@+id/champBuild"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:srcCompat="@drawable/ahri_spells" />
    
        <TextView
            android:id="@+id/champName"
            style="@style/ChampionName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="38dp"
            android:layout_marginLeft="38dp"
            android:layout_marginTop="29dp"
            android:text="Zyra"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <Button
            android:id="@+id/buttonShowHideCounters"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="10dp"
            android:layout_marginRight="10dp"
            android:background="@null"
            android:drawableTop="@drawable/ic_arrow_drop_down_circle_black_24dp"
            android:text="Counters"
            android:textColor="@color/white"
            app:layout_constraintBaseline_toBaselineOf="@+id/buttonShowHideStory"
            app:layout_constraintEnd_toStartOf="@+id/buttonShowHideStory" />
    
        <Button
            android:id="@+id/buttonShowHideStory"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:background="@null"
            android:drawableTop="@drawable/ic_arrow_drop_down_circle_black_24dp"
            android:text="Story"
            android:textColor="@color/white"
            app:layout_constraintEnd_toStartOf="@+id/buttonShowHideBuild"
            app:layout_constraintTop_toTopOf="parent" />
    
        <Button
            android:id="@+id/buttonShowHideBuild"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="9dp"
            android:layout_marginRight="9dp"
            android:background="@null"
            android:drawableTop="@drawable/ic_arrow_drop_down_circle_black_24dp"
            android:text="Build"
            android:textColor="@color/white"
            app:layout_constraintBaseline_toBaselineOf="@+id/buttonShowHideStory"
            app:layout_constraintEnd_toEndOf="parent" />
    
        <android.support.constraint.Barrier
            android:id="@+id/barrier3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:barrierDirection="bottom"
            app:constraint_referenced_ids="buttonShowHideCounters,champName,buttonShowHideStory,buttonShowHideBuild"
            tools:layout_editor_absoluteY="70dp" />
    
    </android.support.constraint.ConstraintLayout>

    Kod dla Layout 2:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout
        android:id="@+id/zyra_story_layout"
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/gradient_darkpurple_lightpurple"
        tools:context=".Champions_Package.ZyraActivity"
        tools:layout_editor_absoluteY="81dp">
    
        <TextView
            android:id="@+id/champStory"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginBottom="176dp"
            android:text="@string/DetailsZyra"
            android:textColor="@color/white"
            android:visibility="visible"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/buttonShowHideCounters"
            app:layout_constraintVertical_bias="0.163" />
    
        <TextView
            android:id="@+id/champName"
            style="@style/ChampionName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="38dp"
            android:layout_marginLeft="38dp"
            android:layout_marginTop="29dp"
            android:text="Zyra"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <Button
            android:id="@+id/buttonShowHideCounters"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="10dp"
            android:layout_marginRight="10dp"
            android:background="@null"
            android:drawableTop="@drawable/ic_arrow_drop_down_circle_black_24dp"
            android:text="Counters"
            android:textColor="@color/white"
            app:layout_constraintBaseline_toBaselineOf="@+id/buttonShowHideStory"
            app:layout_constraintEnd_toStartOf="@+id/buttonShowHideStory" />
    
        <Button
            android:id="@+id/buttonShowHideStory"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:background="@null"
            android:drawableTop="@drawable/ic_arrow_drop_down_circle_black_24dp"
            android:text="Story"
            android:textColor="@color/white"
            app:layout_constraintEnd_toStartOf="@+id/buttonShowHideBuild"
            app:layout_constraintTop_toTopOf="parent" />
    
        <Button
            android:id="@+id/buttonShowHideBuild"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="9dp"
            android:layout_marginRight="9dp"
            android:background="@null"
            android:drawableTop="@drawable/ic_arrow_drop_down_circle_black_24dp"
            android:text="Build"
            android:textColor="@color/white"
            app:layout_constraintBaseline_toBaselineOf="@+id/buttonShowHideStory"
            app:layout_constraintEnd_toEndOf="parent" />
    
        <android.support.constraint.Barrier
            android:id="@+id/barrier3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:barrierDirection="bottom"
            app:constraint_referenced_ids="buttonShowHideCounters,champName,buttonShowHideStory,buttonShowHideBuild"
            tools:layout_editor_absoluteY="731dp" />
    
    </android.support.constraint.ConstraintLayout>

    W załącznikach dodałem wygląd layoutów.

    img.png

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach
    12 godzin temu, 1haker napisał:

    Czy dobrze kombinuje, że dla każdej postaci inne Activity i oddzielne layout, czy da się to jakoś inaczej zrobić?

    Layout ma wyglądać tak samo dla każdej postaci to będziesz używał tej samej activity i tego samego layoutu. Będziesz podmieniał tylko dane wewnątrz. Czyli zamiast ustawiać wszystko na sztywny jak np.: 

    android:text="Zyra"

    Będziesz w Activity ustawiał w kodzie co tutaj ma się wyświetlać:

    TextView champName = findViewById(R.id.champName);
    champName.setText(champion.getName()); // utwórz klasę Champion i tam trzymaj podstawowe informacje o bohaterze. 
    //Będziesz potem przekazywał taki obiekt między aktywnościami

     

    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