NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Lekce 5 - Android Intenty a aktivity - SumResultActivity

V minulé lekci, Android Intenty a aktivity - Odpověď od zavřené aktivity, jsme si ukázali, jak získat požadovanou odpověď ze zavřené aktivity, kterou jsme předtím otevřeli.

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.

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:

Android Intenty a aktivity

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 - Odpověď od zavřené aktivity
Všechny články v sekci
Android Intenty a aktivity
Přeskočit článek
(nedoporučujeme)
Android Intenty a aktivity - Java kód SumResultActivity
Článek pro vás napsal Pavel
Avatar
Uživatelské hodnocení:
2 hlasů
Autor se věnuje programování v Javě, hlavně pro Android. Mezi jeho další zájmy patří Arduino, Minecraft.
Aktivity