Mrz 132015
 

In dieser Lektion wollen wir über den Zyklus einer Aktivität mehr lernen. Es geht einfach gesagt darum einen Intent zu empfangen und daraus Informationen zu lesen.

In der letzten Lektion haben wir die secondActivity gestartet indem wir einen unserer Knöpfe gedrückt haben. Jeder unserer Buttons hat seinen eigenen Intent. Nun werden wir jedem einzelnen Button seinen eigenen Song hinzufügen und auf dem Weg zum Ziel werden wir den Lebenszyklus unserer Aktivität kennen lernen.

In der letzten Lektion haben wir den Intent erstellt. Dies ist eine Nachricht mit Informationen über die gewünschte Aktion.

Nun werden wir in der secondActivity in der onCreate() Methode den folgenden Code hinzufügen:

Stellt auch gleich sicher, das ihr Intent importiert.

Nun müssen wir uns die Zeilen mal genauer anschauen. getIntent() empfängt den Intent, welcher die neue Aktivität gestartet hat.  In der nächsten Zeile speichern wir die integer “Nummer” unseres Buttons der gedrückt wurde, in Fall das das fehlschlägt speichern wir die 1.

Um zu schauen ob wir auch alles richtig gemacht haben, werden wir den TextView Wert in der SecondActivity ändern. Dies haben wir auch schon in anderen Lektionen gemacht.

Wir werden nun Änderungen in der activity_second.xml Datei vornehmen.

Wir werden in der textView eine ID ergänzen.

Dann sollten wir das folgende Ergebnis haben:

Nun werden wir in der SecondActivity Klasse in der onCreate() Methode hinzufügen:

Langsam sollte man verstehen, wie alles funktioniert oder? Wir rufen ein Objekt mit seiner ID (R.id.textView) ab und leiten es weiter an TextView und speichern es dort unter tv.

Danach ändern wir den Wert von tv zur number (Nummer unseres Button). Dies konvertieren wir zu einem String, setText kann keine integer lesen. Die Nummer die gespeichert wird, ist die Nummer unseres Knopfes, welchen wir im vorherigen Bildschirm gedrückt haben. Nun werden wir diesen in der SecondActivity anzeigen:

K5L6B1 K5L6B2

So einfach ist das ganze. Nun werden wir anstatt eine Zahl anzuzeigen ein Lied abspielen.

In unserem Code ist auch noch ein kleiner Fehler eingebaut, versucht diesen von selber zu lösen, es ist nicht schwer.

Für diese App werden wir kostenlose Musik verwenden. Hierzu nehmen wir welche von Matt McFarlands: http://mattmcfarland.com/

Ich habe einfach die ersten 4 heruntergeladen:

1. Wouldn’t it be

2. Wicked

3. Warfield

4. Tunneled

Es kommt nicht darauf an, welche Dateien ihr verwendet. Für unsere App werde ich diese in den res/raw/ Ordner unserer App kopieren. Falls dieser Ordner noch nicht existiert, einfach auf res mit der rechten Maustaste und auf new und folder, dann könnt ihr ihn recht einfach erstellen. Danach noch kurz auf refresh und ihr sehr eure 4 Lieder. Um es einfach zu halten, habe ich alle 4 in song1, song2, song3, song4 umbenannt.

Nun gehen wir wieder in unsere SecondActivity in die onCreate() Methode, wo wir die Musik abspielen wollen. Nun müssen wir unter public class SecondActivity extends Activity { unseren Musikspieler integrieren.

Wir erstellen den Musikspieler namens mPlayer. Vergesst auch hier nicht, den benötigten Import durch zuführen. Wir initialisieren den mPlayer noch nicht, wir müssen erst die benötigten Titelinformationen einspielen.

Um zu schauen welcher Titel gerade spielt nutzen wir currentSong. Wenn wir durch den Home Button aus der App gehen, kann die App so sich daran erinnern, wo sie war und weiter spielen, wenn wir wieder in die App wechseln.

Nun zum Zyklus einer Aktivität. Erinnert euch daran, dass die onCreate() Methode sofort beim Start einer Aktivität ausgeführt wird. Also werden wir unsere Musik in dieser Methode einbinden:

 

Wir nutzen hier eine Reihe von Statements, welchen Titel wir spielen. Wir haben am Ende auch ein Standard gesetzt, im Fall irgendetwas läuft nicht wie gewünscht. Am Ende starten wir unseren mPlayer. Ganz einfach und klar.

Jetzt haben wir aber noch ein Problem. Wenn wir einen Anruf bekommen oder aus der App gehen, spielt unsere Musik einfach weiter. Die App weiß ja nicht, dass sie pausieren soll. Daher fügen wir eine onPause() Methode hinzu:

Diese Methode wird immer ausgeführt, wenn wir die App nicht direkt auf dem Display sehen. Dies ist auch der Fall, wenn wir den zurück Knopf verwenden um in die MainActivity zu gelangen. Wir werden hier als erstes die super.onPause() Methode ansprechen, dies wird benötigt da einige Aufrufe in der Aktivitäten Klasse onPause Methode (die Methode welche wir überschreiben) um eine anständige Systemfunktionalität zu gewährleisten.

Danach überprüfen wir einfach ob der mPlayer spielt und stoppen diesen.

Nun haben wir es geschafft unseren mPlayer zu pausieren, aber was ist wenn wir zurück in die App gehen? Die onCreate() Methode wird nicht aufgerufen werden, da wir diese schon vorher gestartet haben. Also müssen wir eine onResume() Methode hinzufügen:

Als erstes schauen wir nach ob unser mPlayer auch einen Wert besitzt. Es kann durchaus passieren, das der mPlayer vergisst, welchen Titel er abgespielt hat. Daher nehmen wir diesen dann aus unserem currentSong.

Danach rufen wir einfach wieder mPlayer.start() auf.

In dem Fall das wir die App komplett schließen, helfen wir dem System etwas aufzuräumen. Dies ist wichtig, dass unsere App keine wichtige Systemleistung verschlingt, welche andere Apps benötigen:

Auch hier rufen wir als erstes die super.onStop() Methode auf. Dies wird wieder benötigt um kritische Methoden zu benutzen um eine App zu beenden. Danach schauen wir ob der mPlayer gerade am spielen ist, falls dies der Fall ist, beenden wir diesen.

Nun können wir unsere App benutzen und unsere Musik anständig abspielen. Wenn wir die App pausieren oder verlassen, weiß die App genau was zu tun ist. Damit haben wir unsere erste Musik App entwickelt.

Ich hoffe ihr habt wieder viel gelernt beim erstellen dieser simplen Musik App. Nun sollten wir auch genau wissen, wie wir ein View (Bildschirmbereich) mit seiner ID (findViewById) herausfinden ob es ein TextView oder ein Button ist. Und wir können diese Information verarbeiten. Des Weiteren haben wir gelernt unser Layout graphisch und mit der .xml zu bearbeiten. Wir sind nun soweit Intents zu nutzen, um mit diesen Aktivitäten zu starten.

Nun haben wir alle ein Basis Verständnis wie ein Lebenszyklus einer Aktivität aussieht und arbeitet und können darauf weiter aufbauen.

Hier noch der benötigte Code:

MainActivity

 SecondActivity

 MusikApp Manifest

activity_main.xml

 activity_second.xml

 

Falls ihr Fragen habt, immer raus damit, ich helfe euch sehr gerne. Hinterlasst bitte einfach einen Kommentar.

Teilt diese Seite mit euren Freunden und besucht uns mal auf Facebook und auf Google+, dass würde dieser Seite wirklich weiterhelfen, Danke sehr. Oder ein Klick auf die Werbung, hilft dabei diese Seite am laufen zu halten.

Quelle: Original Anleitung auf englisch von Kilobolt Studios

Lektion 5 - Erstellen einer Musik App Teil 2

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

(required)

(required)

%d Bloggern gefällt das: