Android-sovelluksessa aktiviteetti toimii sovelluksen yksittäisenä näkymänä, ja niiden välillä siirtyminen on yleinen operaatio, joka luo monivaiheisia ja interaktiivisia käyttökokemuksia. Tässä käsitellään yksinkertaista esimerkkiä siitä, kuinka luoda toinen aktiviteetti ja siirtyä sen välillä, sekä miten lähettää tietoja aktiviteetista toiseen.
Aloitetaan luomalla toinen aktiviteetti. Avaa Android Studio ja mene kohtaan File | New | Activity | Blank Activity. Tässä voit valita uuden aktiviteetin nimeksi joko Main2Activity tai vaihtaa sen esimerkiksi SecondActivity:ksi. Tämä luo tyhjän aktiviteetin, jossa voimme toteuttaa tarvittavat toiminnot.
Ensimmäisessä aktiviteetissa, eli MainActivity.java-tiedostossa, lisätään funktio, joka käynnistää toisen aktiviteetin:
Tässä määrittelemme, että painettaessa nappia, järjestelmä luo uuden Intent-olion, joka käynnistää SecondActivity:n. Intent on viestiobjekti, jonka avulla voimme kommunikoida aktiviteettien välillä. Kun painamme nappia, toisen aktiviteetin luominen ja sen käynnistäminen tapahtuu heti.
Seuraavaksi avataan activity_main.xml-tiedosto, joka sijaitsee res/layout-kansiossa, ja lisätään siihen nappi, joka käynnistää uuden aktiviteetin:
Nyt, kun koodi on kirjoitettu, voimme suorittaa sovelluksen ja nähdä, kuinka ensimmäisestä aktiviteetista siirrytään toiseen. Mutta jotta tämä kokemus olisi realistisempi, voidaan toiseen aktiviteettiin lisätä myös nappi, joka sulkee sen ja palauttaa meidät takaisin ensimmäiseen aktiviteettiin.
Avaa SecondActivity.java ja lisää seuraava funktio:
Tämä kutsu finish() sulkee nykyisen aktiviteetin ja palauttaa käyttäjän takaisin taustalla olevaan aktiviteettiin. Tämä toiminta ei kuitenkaan palauta suoraan kutsuvaa aktiviteettia, vaan luottaa Androidin takaisinpinoon, joka pitää kirjaa sovelluksessa käynnissä olevista aktiviteeteista. Jos haluamme palauttaa käyttäjän tarkasti tiettyyn aktiviteettiin, voimme käyttää Intent-objektia uudelleen, muuttamalla sen luokan nimeä.
Lisätään vielä toinen nappi SecondActivity.xml-tiedostoon, joka vastaa tätä toimintoa:
Nyt sovellus on valmis ja voimme testata, kuinka painikkeet toimivat: ensimmäisestä aktiviteetista siirrytään toiseen ja toisen aktiviteetin painikkeesta palataan takaisin ensimmäiseen.
Kun katsomme tarkemmin, huomaamme, että tässä harjoituksessa suurin osa työstä tehdään onClickSwitchActivity()-metodissa. Tämä on se kohta, jossa määrittelemme toisen aktiviteetin käyttämällä Intent-oliota. Tämän lisäksi olemme lisänneet sulkemisnappin SecondActivity:ssä, joka sulkee sen ja tuo meidät takaisin ensimmäiseen aktiviteettiin. Tätä toiminnallisuutta hyödynnetään monissa sovelluksissa, joissa käyttäjä siirtyy näkymästä toiseen ja haluaa palata alkuperäiseen näkymään.
Android Studio huolehtii suurimmasta osasta käytännön asioista, kuten aktiviteettien ilmoittamisesta manifestissa. Jos me olisimme luoneet aktiviteetit manuaalisesti, meidän olisi täytynyt lisätä ne AndroidManifest.xml-tiedostoon. Android Studio kuitenkin tekee tämän automaattisesti. Voimme avata AndroidManifest.xml-tiedoston ja tarkistaa seuraavat elementit:
Tässä huomaamme, että toista aktiviteettia ei ole merkitty MAIN ja LAUNCHER -elementeillä, koska pääaktiviteetti (MainActivity) määrittelee, minkä aktiviteetin käynnistys tapahtuu ensimmäisenä. Tämä näkyy manifestissa, ja se on olennainen osa sovelluksen käynnistysprosessia.
Seuraavaksi siirrymme tietojen välittämiseen aktiviteettien välillä. Intent-objekti toimii viestintävälineenä, jonka avulla voimme siirtää tietoja eri aktiviteettien välillä. Tämä on olennainen osa monia sovelluksia, joissa käyttäjä syöttää tietoja, jotka sitten siirtyvät toiseen aktiviteettiin.
Esimerkki tietojen lähettämisestä toiseen aktiviteettiin:
-
Muutetaan MainActivity.xml-tiedostoa niin, että siihen lisätään EditText-elementti käyttäjän syötteelle:
-
Muutetaan MainActivity.java-tiedostossa onClickSwitchActivity() -metodia seuraavasti:
Tässä lisäämme EditText-komponentista otetun tekstin intent-objektiin putExtra-metodilla. Tietoja voidaan siirtää monilla eri tavoilla, mutta tässä esimerkissä käytämme Intent.EXTRA_TEXT-avainta.
-
Muutetaan SecondActivity.java-tiedostoa niin, että se näyttää vastaanotetun tiedon:
Tässä tarkistamme, onko vastaanotettu intent sisältänyt tietoa, ja jos on, näytämme sen TextView-komponentissa.
Kun sovellus on suoritettu, käyttäjä voi kirjoittaa tekstin MainActivityyn ja lähettää sen SecondActivityyn, jossa se näytetään. Tämä esimerkki havainnollistaa, kuinka tietoja voidaan siirtää yhden aktiviteetin ja toisen välillä käyttämällä Intent-objektia ja putExtra/getStringExtra -metodeja.
Endtext
Miten käyttää puheentunnistusta Android-sovelluksessa?
Android-sovelluksissa on mahdollista käyttää puheentunnistusta, joka tarjoaa käyttäjille kätevän tavan syöttää tekstiä äänen avulla. Tällöin sovellus voi tunnistaa puhutut sanat ja muuntaa ne tekstiksi. Tämä prosessi toteutetaan käyttämällä Androidin tarjoamaa RecognizerIntent-luokkaa. Tässä käsitellään, kuinka puheentunnistus voidaan ottaa käyttöön ja miten puheentunnistuksen tulokset saadaan sovellukseen.
Ensimmäinen askel on luoda Intent, joka käynnistää puheentunnistusprosessin. Tämä tapahtuu seuraavalla koodilla:
Tässä määritellään, että puheentunnistukseen käytettävä kielimalli on vapaamuotoinen, eli sovellus voi tunnistaa puheen monimutkaisempia ja vapaampia lauserakenteita. Tämän jälkeen kutsutaan startActivityForResult-metodia, joka käynnistää puheentunnistuksen.
Kun puheentunnistus on suoritettu ja tulokset saatu, ne käsitellään onActivityResult-callbackin avulla. Tämä mahdollistaa tulosten näyttämisen sovelluksessa seuraavasti:
Tässä koodissa tarkistetaan, että puheentunnistus on onnistunut, ja sen jälkeen tulokset (puheessa tunnistetut sanat) asetetaan TextView-komponenttiin. Tunnistettujen sanojen lista on järjestetty tunnistuksen luotettavuuden mukaan, ja ensimmäinen sana on se, johon puheentunnistus on luottanut eniten.
On myös mahdollista tarkastella tunnistuksen luotettavuutta EXTRA_CONFIDENCE_SCORES-parametrin avulla, joka palauttaa taulukon luottamuspisteistä:
Tässä arvo 1.0 tarkoittaa suurinta luottamusta, kun taas arvo 0.0 viittaa heikoimpaan luottamukseen. Tämä lisätieto voi olla hyödyllinen, jos haluat näyttää käyttäjälle, kuinka tarkasti puhe on tunnistettu.
Jos et halua käyttää Googlen oletustoimintoa puheentunnistukseen, voit myös suoraan käyttää SpeechRecognizer-luokkaa. Tämä vaatii kuitenkin RECORD_AUDIO-lupaa sekä RecognitionListener-rajapinnan toteuttamista puheentunnistuksen tapahtumien käsittelemiseksi. Tämä lähestymistapa voi olla hyödyllinen, jos tarvitset enemmän hallintaa tai haluat mukauttaa puheentunnistusprosessia.
Puheentunnistuksen käyttö Android-sovelluksissa on siis kätevä tapa parantaa käyttäjäkokemusta, mutta se vaatii myös huolellista käsittelyä ja hallintaa. On tärkeää varmistaa, että puheentunnistuksen toiminta on luotettavaa ja käyttäjäystävällistä, sekä huolehtia sovelluksen käytettävyyttä koskevista seikoista, kuten virheiden käsittelystä ja käyttöliittymän selkeydestä.
Lisäksi on tärkeää ottaa huomioon, että puheentunnistus ei ole täydellinen. Kieli ja ääntämys voivat vaikuttaa tuloksiin, joten on suositeltavaa tarjota käyttäjälle mahdollisuus korjata tunnistettuja virheitä tai antaa palautetta, jos puheentunnistus ei toimi odotetulla tavalla. Käyttäjien kokemusta voidaan parantaa myös käyttämällä kontekstitietoisuutta, kuten aiempia syötteitä tai sovelluksen toiminnallisuuksia, jotka voivat auttaa parantamaan puheentunnistuksen tarkkuutta.
Miten liittää Firebase ja Kinvey Android-sovellukseen?
Firebase ja Kinvey ovat kaksi merkittävää Backend-as-a-Service (BaaS) -palvelua, jotka tarjoavat laajan valikoiman työkaluja ja palveluja mobiilisovellusten taustojen hallintaan. Firebase tarjoaa muun muassa reaaliaikaisen tietokannan, käyttäjähallinnan, tiedostojen tallennuksen, push-ilmoitukset ja useita autentikointivaihtoehtoja, kuten sähköpostin ja salasanan, Facebookin, Twitterin, GitHubin ja Googlen kautta. Google hankki Firebase:n äskettäin, ja näin ollen odotettavissa on syvempää integraatiota Googlen pilvipalveluiden kanssa.
Kinvey, puolestaan, on yksi varhaisimmista BaaS-palveluista, ja sen tarjoamat ominaisuudet, kuten käyttäjähallinta, tiedostojen tallennus, paikkatietopalvelut ja versiohallinta, tekevät siitä monipuolisen ratkaisun. Vaikka Kinvey ei ole yhtä yksinkertainen käyttää kuin Firebase, se tarjoaa silti paljon mahdollisuuksia erilaisten sovellusten luomiseen.
Firebase:n ja Kinvey:n liittäminen Android-sovelluksiin vaatii hieman konfigurointia, mutta prosessi on suoritettavissa seuraamalla ohjeita tarkasti. Näissä palveluissa on omat erityispiirteensä, jotka erottavat ne muista taustapalveluista.
Firebase: Liittäminen Android-sovellukseen
-
Android Manifestin päivitys
Aloita avaamalla Android Manifest -tiedosto ja lisää tarvittavat oikeudet. Tämän jälkeen avaabuild.gradle(Module: app) ja lisää seuraavat riippuvuudet:
compile 'com.firebase:firebase-client-android:2.5.0+' -
Firebase:n integroiminen koodissa
AvaaActivityMain.javaja tuo Firebase-luokka:
import com.firebase.client.Firebase;
Lisää sitten seuraava koodionCreate()-metodiin: -
Käyttäjän luominen Firebase:ssa
Käyttäjän rekisteröiminen Firebase:ssa tapahtuu seuraavalla koodilla:
Kinvey: Liittäminen Android-sovellukseen
-
Android Manifestin ja Gradlen päivitys
Liitä Kinvey SDK Android-projektiin. Tämä vaatii, että kopioit SDK:n kirjastotlibs-kansioon ja päivitätbuild.gradle-tiedoston seuraavalla tavalla: -
Kinvey-asiakasluokan käyttöönotto
AvaaMainActivity.javaja tuo Kinvey-asiakasluokka: -
Kinvey-pingin tarkistus
Verifioi, että yhteys Kinveyhin on kunnossa käyttämällä seuraavaa koodia:
Firebase:n ja Kinvey:n välillä on monia samankaltaisuuksia, mutta niiden käyttöönoton ja konfiguroinnin eroista huolimatta kummatkin tarjoavat monipuoliset mahdollisuudet mobiilisovellusten backendin hallintaan. Firebase tarjoaa yksinkertaisemman ja sujuvamman käyttöönoton, erityisesti, jos tavoitteena on kehittää sovelluksia, jotka tarvitsevat reaaliaikaista tietokantaa ja käyttäjähallintaa. Kinvey tarjoaa enemmän hallintaa ja laajemman palveluvalikoiman, mutta sen asennus voi olla monimutkaisempaa.
On tärkeää ymmärtää, että valinta Firebase:n ja Kinvey:n välillä ei ole vain tekninen, vaan se perustuu myös projektin tarpeisiin. Jos sovellus vaatii laajempaa skaalautuvuutta ja tukea monille käyttäjille, Firebase voi olla parempi valinta, koska sen integraatio Googlen pilvipalveluihin voi tarjota lisäarvoa. Kinvey puolestaan on hyödyllinen silloin, kun tarvitaan enemmän joustavuutta ja erikoistuneita palveluja, kuten paikkatietoja ja tiedostonhallintaa.
Molemmat palvelut vaativat sovelluksen huolellista rekisteröintiä ja API-avaimien käyttöä, ja on tärkeää tarkistaa palvelun tarjoamat dokumentaatiot ja esimerkit, jotta saadaan mahdollisimman sujuva käyttökokemus. Mobiilisovelluksen backendin valinta voi vaikuttaa merkittävästi sovelluksen toiminnallisuuteen ja käyttäjäkokemukseen.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский