IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

4. diel - Android Intent a aktivity - SumResultActivity

V minulej lekcii, Android Intent a aktivity - SumActivity - Java kód , sme napísali Java kód s implicitným Intent pre otvorenie ďalšie aktivity.

Dnes vytvoríme aktivitu SumResultActivity, do ktorej budeme z aktivity SumActivity odosielať dve čísla. Tieto dve čísla tu sčítame a odošleme späť do aktivity SumActivity, ktorá bude našu odpoveď očakávať.

Vytvorenie SumResultActivity

Podobne, ako sme vytvárali aktivitu SumActivity, vytvoríme aj SumResultActivity. Klikneme pravým tlačidlom na priečinok projektu so súbormi s Java kódom a ďalej v menu na New -> Activity -> Empty Activity.

V otvorenom okne do poľa Activity Name napíšeme SumResultActivity, zaškrtneme Generate Layout File a do poľa Layout Name napíšeme sum_result_activity. Potom okno zavrieme tlačidlom Finish.

Android Studio vygeneruje súbory SumResultActivity.java a sum_result_activity.xml.

sum_result_activity.xml

Obsah súboru sum_result_activity.xml upravíme do nasledujúcej podoby, ktorú si vzápätí 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>

Konštanty použitých textov

Súbor res/values/strings.xml doplníme o ďalšie položky s textami použitými v projekte:

<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>

Konštanty použitých farieb

V XML návrhu aktivity SumResultActivity používame jedinú "farebnú" konštantu v riadkoch nastavujúce farbu textu android:textColor="@android:color/black". Konštantu @android:color/black ale nemáme deklarovanú v príslušnom súbore. Ide totiž o defaultný konštantu Androidu.

V XML návrhu aktivity SumResultActivity máme opäť navigačné tlačidlo, ako bolo u SumActivity, a potom vlastne len niekoľko komponentov <TextView>. Výstup XML kódu bude vyzerať takto:

Android intent a aktivity

Otvorená aktivita zobrazí prijaté čísla a pod nimi ich súčet. Kliknutím na tlačidlo Odoslať súčet túto aktivitu zavrieme a zároveň tým odošleme intent s dátami, obsahujúcimi aktivitou SumActivity očakávaný súčet čísel.

Pri pohľade do XML návrhu si opäť môžeme všimnúť absencia atribútu android:onClick. To znamená, že opäť budeme obsluhu udalosti kliknutí na tlačidlo riešiť Java kódom, ale, pre zmenu, iným spôsobom, než v predchádzajúcej lekcii s aktivitou SumActivity.

V kóde asi nie je nič moc ďalšieho, čo by stálo za zmienku, preto ponechajme túto lekciu kratšia a na Java kód SumResultActivity si vyčleňte samostatnú lekciu.

V budúcej lekcii, Android Intent a aktivity - Java kód SumResultActivity , si ukážeme Java kód aktivity SumResultActivity a hlavne to najzaujímavejšie - spôsob príjmu dát z aktivity SumActivity a odoslanie odpovede s výsledkom.


 

Predchádzajúci článok
Android Intent a aktivity - SumActivity - Java kód
Všetky články v sekcii
Android intent a aktivity
Preskočiť článok
(neodporúčame)
Android Intent a aktivity - Java kód SumResultActivity
Článok pre vás napísal Pavel
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje programování v Javě, hlavně pro Android. Mezi jeho další zájmy patří Arduino, Minecraft.
Aktivity