BLACK FRIDAY! Slevy až 80 % jsou všude. Tak je nepropásni a přejdi do rostoucího IT oboru!
The real BF 2020

Lekce 4 - Android Intenty a aktivity - SumResultActivity

V minulé lekci, Android Intenty a aktivity - SumActivity - Java kód, jsme napsali Java kód s implicitním intentem pro otevření další aktivity.

Dnes vytvoříme aktivitu SumResultActivity, do které budeme z aktivity SumActivity odesílat dvě čísla. Tato dvě čísla zde sečteme a odešleme zpět do aktivity SumActivity, která bude naši odpověď očekávat.

Vytvoření SumResultActivity

Podobně, jako jsme vytvářeli aktivitu SumActivity, vytvoříme i SumResultActivity. Klikneme pravým tlačítkem na složku projektu se soubory s Java kódem a dále v menu na New -> Activity -> Empty Activity.

V otevřeném okně do pole Activity Name napíšeme SumResultActivity, zaškrtneme Generate Layout File a do pole Layout Name napíšeme sum_result_activity. Poté okno zavřeme tlačítkem Finish.

Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!

Android Studio vygeneruje soubory SumResultActivity.java a sum_result_activity.xml.

sum_result_activity.xml

Obsah souboru sum_result_activity.xml upravíme do následující podoby, kterou si záhy popíšeme:

<RelativeLayout
    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:padding="10dp">

    <Button
        android:id="@+id/btnSend"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:text="@string/sum_result_activity_button"
        android:textAllCaps="false" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@id/btnSend">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/cLayout"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="10dp">

            <TextView
                android:id="@+id/textView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="@string/sum_result_activity_title"
                android:textSize="30sp"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toTopOf="parent" />

            <TextView
                android:id="@+id/textView2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal"
                android:text="@string/sum_activity_desc"
                app:layout_constraintEnd_toEndOf="parent"
                app:layout_constraintStart_toStartOf="parent"
                app:layout_constraintTop_toBottomOf="@+id/textView" />

            <TextView
                android:id="@+id/textView6"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="24dp"
                android:layout_marginEnd="8dp"
                android:layout_marginRight="8dp"
                android:text="@string/sum_result_activity_number_one"
                app:layout_constraintEnd_toStartOf="@+id/labelNumber1"
                app:layout_constraintTop_toBottomOf="@id/textView2" />

            <TextView
                android:id="@+id/textView7"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="24dp"
                android:layout_marginEnd="8dp"
                android:layout_marginRight="8dp"
                android:text="@string/sum_result_activity_number_two"
                app:layout_constraintEnd_toStartOf="@+id/guideline"
                app:layout_constraintTop_toBottomOf="@+id/textView6" />

            <TextView
                android:id="@+id/labelNumber1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView"
                android:textColor="@android:color/black"
                app:layout_constraintBaseline_toBaselineOf="@+id/textView6"
                app:layout_constraintStart_toStartOf="@+id/guideline" />

            <TextView
                android:id="@+id/labelNumber2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView"
                android:textColor="@android:color/black"
                app:layout_constraintBaseline_toBaselineOf="@+id/textView7"
                app:layout_constraintStart_toStartOf="@+id/guideline" />

            <TextView
                android:id="@+id/textView10"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="24dp"
                android:layout_marginEnd="8dp"
                android:layout_marginRight="8dp"
                android:text="@string/sum_result_activity_total_sum"
                app:layout_constraintEnd_toStartOf="@+id/guideline"
                app:layout_constraintTop_toBottomOf="@+id/textView7" />

            <TextView
                android:id="@+id/labelResult"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="TextView"
                android:textColor="@android:color/black"
                app:layout_constraintBaseline_toBaselineOf="@+id/textView10"
                app:layout_constraintStart_toStartOf="@+id/guideline" />

            <androidx.constraintlayout.widget.Guideline
                android:id="@+id/guideline"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                app:layout_constraintGuide_percent="0.5" />

        </androidx.constraintlayout.widget.ConstraintLayout>

    </ScrollView>

</RelativeLayout>

Konstanty použitých textů

Soubor res/values/strings.xml doplníme o další položky s texty použitými v projektu:

<string name="sum_result_activity_title">Součet čísel</string>

<string name="sum_result_activity_number_1">První přijaté číslo:</string>
<string name="sum_result_activity_number_2">Druhé přijaté číslo:</string>
<string name="sum_result_activity_total_sum">Součet přijatých čísel:</string>
<string name="sum_result_activity_button">Odeslat součet</string>

Konstanty použitých barev

V XML návrhu aktivity SumResultActivity používáme jedinou "barevnou" konstantu v řádcích nastavujících barvu textu android:textColor="@android:color/black". Konstantu @android:color/black ale nemáme deklarovanou v příslušném souboru. Jde totiž o defaultní konstantu Androidu.

V XML návrhu aktivity SumResultActivity máme opět navigační tlačítko, jako bylo u SumActivity, a pak vlastně jen několik komponent <TextView>. Výstup XML kódu bude vypadat takto:

Otevřená aktivita zobrazí přijatá čísla a pod nimi jejich součet. Kliknutím na tlačítko Odeslat součet tuto aktivitu zavřeme a zároveň tím odešleme intent s daty, obsahujícími aktivitou SumActivity očekávaný součet čísel.

Při pohledu do XML návrhu si opět můžeme všimnout absence atributu android:onClick. To znamená, že opět budeme obsluhu události kliknutí na tlačítko řešit Java kódem, ale, pro změnu, jiným způsobem, než v předchozí lekci s aktivitou SumActivity.

V kódu asi není nic moc dalšího, co by stálo za zmínku, proto ponechme tuto lekci kratší a na Java kód SumResultActivity si vyčleňme samostatnou lekci.

V příští lekci, Android Intenty a aktivity - Java kód SumResultActivity, si ukážeme Java kód aktivity SumResultActivity a hlavně to nejzajímavější - způsob příjmu dat z aktivity SumActivity a odeslání odpovědi s výsledkem.


 

Předchozí článek
Android Intenty a aktivity - SumActivity - Java kód
Všechny články v sekci
Android Intenty a aktivity
Článek pro vás napsal lupa.lupa
Avatar
Jak se ti líbí článek?
Ještě nikdo nehodnotil, buď první!
Aktivity (6)

 

 

Komentáře

Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zatím nikdo nevložil komentář - buď první!