Slevový týden - Květen Office week
Pouze tento týden sleva až 80 % na e-learning týkající se MS Office
30 % bodů zdarma na online výuku díky naší Slevové akci!

6. diel - Android programovanie - Dokončenie implementácia kalkulačky

V minulej lekcii, Android programovanie - Implementácia Java kódu kalkulačky , sme rozpísali triedu reprezentujúci jednoduchú kalkulačku. V dnešnom tutoriále aplikácii dokončíme a nahráme ju do telefónu.

Metódy operácií

Do triedy dodáme aj ďalšie zvyšné metódy. Tie budú mať rovnaký princíp. Uloží do privátnej premennej c1 číslo na obrazovke a metódu (číslo 1 - 4). Tiež nastaví potrebné riadiace premenné.

Sčítame ()

public void secti(View v) {
    c1 = Double.parseDouble(obraz.getText().toString());

    metoda = 1;
    obraz.setText("0");
    prosel = false;
    c1Nastaven = true;

    cislo1.setText(String.valueOf(c1));
    operace.setText("+");
}

Odpočtu ()

public void odecti(View v) {
    c1 = Double.parseDouble(obraz.getText().toString());

    metoda = 2;
    obraz.setText("0");
    prosel = false;
    c1Nastaven = true;

    cislo1.setText(String.valueOf(c1));
    operace.setText("-");
}

Vynásobte ()

public void vynasob(View V) {
    c1 = Double.parseDouble(obraz.getText().toString());

    metoda = 3;
    obraz.setText("0");
    prosel = false;
    c1Nastaven = true;

    cislo1.setText(String.valueOf(c1));
    operace.setText("*");
}

Vydeľte ()

public void vydel(View V) {
    c1 = Double.parseDouble(obraz.getText().toString());

    metoda = 4;
    obraz.setText("0");
    prosel = false;
    c1Nastaven = true;

    cislo1.setText(String.valueOf(c1));
    operace.setText("/");
}

Metóda na výpočet

Konečne dodáme aj metódu vypocti(). Ak sa metóda nerovná 5, znamená to, že je nastavená a dajú načítať do pamäte c2. Podľa toho, o akú metódu sa jedná, sa vykoná patričná operácie pomocou konštrukcie switch. Pri delení vznikajú dlhé reťazce čísel, preto je potrebné po počítanie zistiť, na akom mieste je desatinná čiarka a podľa toho zaokrúhliť.

public void vypocti(View v) {
    if (c1Nastaven) {
        if (metoda != 5) {
            c2 = Double.parseDouble(obraz.getText().toString());
            cislo2.setText(String.valueOf(c2));
        }
        switch (metoda) {
            case 1: {
                vys = c1 + c2;
                metoda = 5;
                break;
            }

            case 2: {
                vys = c1 - c2;
                metoda = 5;
                break;
            }

            case 3: {
                vys = c1 * c2;
                metoda = 5;
                break;
            }

            case 4: {

                if (c2 != 0) {
                    vys = c1 / c2;
                    metoda = 5;
                    break;
                } else {
                    Toast.makeText(this, "Nelze dělit nulou!", Toast.LENGTH_LONG).show();
                    vymazVse(v);
                    break;
                }
            }
            case 5: {
                break;
            }
        }

        if (vys == 0) {
            obraz.setText("0");
        } else {
            DecimalFormat df = new DecimalFormat("#.########");
            String vysl = df.format(vys);
            vysl = vysl.replace(",", ".");

            int poz = vysl.indexOf(".");
            if (poz >= 8) {
                Toast.makeText(this, "Byl překročen limit 9 čísel", Toast.LENGTH_LONG).show();
                vymazVse(v);
                return;
            }

            if (vysl.length() >= 10) {
                String substring = vysl.substring(0, 9);
                obraz.setText(substring);
                return;
            } else {
                obraz.setText(vysl);
            }

            c1Nastaven = false;
            prosel = false;
        }
    }
}

Aplikácia je hotová. Prejdime k vygenerovaniu .apk súboru, aby sme ju mohli vyskúšať.

Vygenerovanie .apk súboru

vygenerovanie APK

Po kliknutí na Generate Signed APK (viz. Obrázok vyššie) sa nám zobrazí tabuľka, v ktorej klikneme na vytvorenie nového kľúča a vyplníme tabuľku. Môže to vyzerať takto:

vytvorenie kľúča
Tento výukový obsah pomáhajú rozvíjať nasledujúce firmy, ktoré možno hľadajú práve teba!

Teraz zvolíme OK a máme vytvorený náš prvý kľúč. V predchádzajúcej tabuľke k nemu nastavíme cestu a vyplníme požadované údaje:

Potvrdenie vygenerovanie APK

Po potvrdení stačí akurát vybrať cestu, kam sa má naša .apk aplikácie vygenerovať. Po vygenerovaní v Android Studio vyskočí ponuka s možnosťou "show in explorer".

Testovanie

Vďaka priebežnému testovanie pri vývoji tejto aplikácie som odhalil niekoľko nežiaducich problémov, ako zobrazovanie čísla x.0 kvôli dátovému typu, ďalej zaokrúhľovanie na potrebný počet desatinných miest alebo zapísanie -0. Tiež sa ukázal problém, pri prepisovanie výsledkov, ktoré majú 9 znakov, preto som musel upraviť podmienky v metóde pre zápis čísla.

Testovať môžeme buď na emulátora alebo na reálnych zariadeniach. Návod pre inštaláciu najlepšieho možného emulátora je v tutoriálu Android programovanie - Vývojové prostredie v kapitole Inštalácia Android Studia, podkapitola Emulátor.

Ja však odporúčam z vlastnej skúsenosti testovania na reálnych zariadeniach.

Testovanie aplikácií na reálnom zariadení

V mobilnom zariadení musíme sprístupniť možnosti vývojárov. Väčšinou sa to robí v nastavení záložke "Všeobecné" tým, že prejdeme do "Informácie o telefóne" a vyberieme "Softvérové informácie". Ďalej len 10x klikneme na ponuku "Číslo zostavenie". Po chvíli sa objaví hláška, že ste sa stali vývojárom a v nastavení v karte Všeobecné pribudne ponuka "Možnosti vývojárov".

Android možnosti vývojárov

Teraz prepojíme USB káblom s PC, zapneme "Možnosti vývojárov" a povolíme Ladenie USB. Odporúčam nechať nainštalovať kompletný balíček SW pre dané zariadenie. Potom potvrdíme dialógové okno, ktoré v mobilnom zariadení vyskočí. Teraz môžeme dať v Android Studio Run (zelená šípka alebo Shift + F10).

RunApp

Okno s ponukou dostupných zariadení potvrdíme a za pár chvíľ sa naša aplikácia rozbehne na telefóne. O všetkom čo sa v aplikácii deje nás informuje Android DDMS.

Kompletné Java kód vrátane jednotlivých XML súborov máte v prílohe.

V budúcej lekcii, Android programovanie - Welcome screen animácie kalkulačky , si ukážeme, ako vytvoriť jednoduchú úvodnú animáciu.


 

Stiahnuť

Stiahnuté 1427x (9.59 MB)
Aplikácia je vrátane zdrojových kódov v jazyku Android Java

 

 

Článok pre vás napísal Jiří Frank
Avatar
Ako sa ti páči článok?
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje programování v C# a vývoji aplikací pro platformu Android a dalším věcem spojeným s Android OS
Predchádzajúci článok
Android programovanie - Implementácia Java kódu kalkulačky
Všetky články v sekcii
Programovanie Android aplikácií v Jave
Miniatúra
Nasledujúci článok
Android programovanie - Welcome screen animácie kalkulačky
Aktivity (1)

 

 

Komentáre

Avatar
Ondrej Elláš:29.11.2016 21:35

V Android Studio som úplný začiatočník. Preto bojujem s každým krokom. Pri kalkulačke som sa dostal až po generovanie APK. Na rozdiel od popisu v článku moje Studio umožňuje aj Build APK. Ten prebehol v poriadku. Keď som zadal Generate Signed APK (build type - release) dostal som nasledovné hlásenie:

Failure: Build failed with an exception.

*What went wrong:
Execution failed for task ´:app:validate­SigningRelease.
Keystore file c:\VeciProAndro­id\PrvniKlicek­.jks not found for signing config 'external Override'

  • Try:

    Run with --stacktrace option to get the stacktrace.

    Run with --info or --debug optin to get more log output.
    Build Failed

Vie mi niekto poradiť kde robím chyby ?

 
Odpovedať
29.11.2016 21:35
Avatar
Ondrej Elláš:30.11.2016 9:57

Po problémoch popísaných v predchádzajúcom príspevku, som vyskúšal najjednoduchšiu aplikáciu Hallo world.
Build APK bol bez problémov úspešný, ale Gererate Signed APK zlyhal presne ako je popísané v predchádzajúcom príspevku.
Robím asi niekde systémovú chybu. Poradími niekdo v čom robím chybu ?

 
Odpovedať
30.11.2016 9:57
Avatar
Tomáš Hůla:31.12.2017 14:17

Když to chci spustit tak mi to píše "Default activity not found".

Editované 31.12.2017 14:19
 
Odpovedať
31.12.2017 14:17
Avatar
Tomáš Hůla:31.12.2017 16:33

Jaký používáš API?

Zjistil jsem že "ActionBarActivity" je už zastaralý.

 
Odpovedať
31.12.2017 16:33
Avatar
Jaroslav Konečný:21.9.2018 15:14

Na mobilu se mi ta kalkulačka zobrazí, ale to je tak vše. Nejdou mačkat tlačítka a nic to nepíše. Mám pocit, že tu kus kódu chybí.
Kde je kód co má být v onclick?
Podle mě ty metody ZapisCislo, ZapisCarku, VymazJeden atd nejsou z ničeho volané.
Můžete prosím poradit?

 
Odpovedať
21.9.2018 15:14
Tento výukový obsah pomáhajú rozvíjať nasledujúce firmy, ktoré možno hľadajú práve teba!
Avatar
Odpovedá na Jaroslav Konečný
Matúš Olejník:21.9.2018 16:10

Keď je parametrom tej funkcie View tak môžeš v grafickom editore po kliknutí na Button nastaviť onClick (vyberieš zo zoznamu) alebo priamo v xml pridáš elementu Button

android:onClick="nazovFunkcie"

Ak nie je parametrom funkcie View môžeš v kóde napr. v onCreate metóde nastaviť click listener

button.setOnClickListener(event -> nazovFunkcie())
Editované 21.9.2018 16:11
Odpovedať
21.9.2018 16:10
/* I am not sure why this works but it fixes the problem */
Avatar
Libor Šimo (libcosenior):24.9.2018 13:20

Ahoj, v článku sa píše: Nyní propojíme USB kabelem s PC a zapneme „Možnosti vývojáře“ a povolíme Ladění USB. Doporučuji nechat nainstalovat kompletní balíček SW pro dané zařízení. Potom potvrdíme dialogové okno, které v mobilu vyskočí.
Mne to ukáže len to v prílohe.
Poradíte?

Odpovedať
24.9.2018 13:20
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
Libor Šimo (libcosenior):24.9.2018 14:04

Vyskúšal som Hello World a na už sa mi to s mobilom spárovalo.

Editované 24.9.2018 14:04
Odpovedať
24.9.2018 14:04
Aj tisícmíľová cesta musí začať jednoduchým krokom.
Avatar
duanin2
Člen
Avatar
duanin2:20.2.2019 15:36

já zkopíruju celek ten kód téhle kalkulačky a ono to nefunguje

 
Odpovedať
20.2.2019 15:36
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovedá na duanin2
David Čápka:15.5.2019 15:06

Ahoj, projekt byl aktualizován na novější verzi.

Odpovedať
15.5.2019 15:06
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!