goan0900

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

Um unsere App zu testen brauchen wir einen anständigen Android Emulator, wo wir schnell testen können ohne lange zu warten. Daher möchte ich euch Genymotion vorstellen. Dieses Programm nutze ich seit längerer Zeit und bin richtig zufrieden damit.

Installation von Genymotion

Als erstes müsst ihr auf die Homepage von Genymotion gehen und euch anmelden: https://www.genymotion.com

Wenn ihr nun auf Product geht, könnt ihr Genymotion für euer Betriebssystem herunterladen. Da ich es unter Ubuntu nutze, werde ich auch dazu eine kurze Anleitung schreiben.

Windows Installation

Bei Windows ist es ganz einfach, herunterladen installieren und los legen. Das wichtigste was ihr beachten müsst, ihr müsst die Version mit Virtual Box herunterladen und beides installieren. Ohne die Virtual Box funktioniert das ganze nicht. Das war es schon.

Ubuntu Installation

Als erstes müsst ihr einen Terminal öffnen und Virtual Box installieren:

Jetzt müsst ihr im Terminal in den Ordner gehen wo ihr Genymotion heruntergeladen habt. Dort führt ihr die folgenden beiden Befehle aus:

Die x müsst ihr mit den reichtigen Zahlen ersetzen, je nachdem, welche Version ihr heruntergeladen habt.

Nun wechselt ihr in den Ordner, wo ihr Genymotion installiert habt und führt den Code aus. Dies ist normalerweise

Nun sollte Genymotion starten.

Einrichten von Genymotion

Als erstes müsst ihr auf Yes drücken um ein neues Gerät zu erstellen.

gen1

Jetzt müsst ihr euch über Connect einloggen.

gen2

Nun könnt ihr euch ein Gerät und die gewünschte Android Version heraussuchen.

gen3

Benennt das Gerät wie ihr es gerne haben möchtet.

gen4

Nun werden die erforderlichen Daten heruntergeladen.

gen5

Nun einfach noch auf Finish drücken.

gen6

Einfach Play klicken und euer Android Gerät startet.

gen7

 

Android Studio Plugin installieren

Im Android Studio einfach auf File und Settings gehen.

Hier könnt ihr Plugins auswählen und dann auf Browse Repositories gehen.

Nun müsst ihr Genymotion suchen und dann mit Rechtsklick auf Download und install gehen.

Um das Plugin zu sehen müsst ihr auf View und dann auf Toolbar gehen.

Fertig.

Eclipse Plugin installieren

In Eclipse geht ihr auf Help und dort auf Install new Software und dann auf Add.

Hier müsst ihr nun die Zeilen mit Genymotion und http://plugins.genymotion.com/eclipse/ ausfüllen.

Unter Genymobile, Genymotion und Genymotion Eclipse Tools anklicken und die nächsten Schritte durchklicken.

Fertig

 

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.

Mrz 122015
 

Im ersten Teil haben wir unsere App schon einmal erstellt und auch getestet. In dieser Lektion werden wir eine zweite Aktivität erstellen, eine Nachricht von der einen zur anderen Aktivität schicken mit Buttons und dadurch weiß diese dann, welches Lied gespielt werden soll.

Lasst uns nochmal einen Blick auf unsere Struktur werfen. Wir haben eine MainActivity mit 4 Knöpfen. Beim drücken von einem Knopf, soll sich die App merken welchen wir gedrückt haben und eine Nachricht an die zweite Aktivität schicken. Diese startet dann und spielt das gewünschte Lied ab.

K5L3B1

Um eine neue Aktivität auszuführen, benötigt Android ein sogenannten Intent (Absicht). Intents sind Nachrichten, welche mit Daten für die gewünschte Aktion gefüllt sind. Wir nutzen einen Intent zum Beispiel, wenn wir eine neue Aktivität starten. Wir können unserem Intent auch noch mit weiteren Informationen füttern, um weitere Aktivitäten zu starten.

Dies wird nach und nach klarer werden, wenn wir sehen, wie wir diese nutzen.

Wir fangen nun damit an eine zweite Aktivität zu erstellen

1. Rechts Klick auf den Paketnamen. Dann auf New –> Other –> Android –> Android Activity

K5L5B1

K5L5B2

2. Wir werden diese wieder als Blank Activity nehmen und nennen sie SecondActivity

K5L5B3

Die erste und die zweite Aktivität sind nun identisch. Als erstes werden wir nun die Display Ausrichtung in den Querformat ändern. Danach werden wir Buttons / Tasten hinzufügen. Um die Ausrichtung zu ändern, müssen wir das AndroidManifest öffnen. Dies können wir mit einem doppel Klick auf AndroidManifest.xml.

K5L5B5

Ihr solltet hierbei beachten, dass Eclipse die SecondActivity automatisch hinzufügen sollte.

In beiden Aktivitäten werden wir nun folgendes ergänzen:
android:screenOrientation=“landscape“

 

 

Dies sollte nun sicherstellen, dass unsere App im Querformat startet. Wir haben dann das folgende Bild:

K5L5B6

 

 

Hinzufügen von Knöpfen

Es macht keinen Sinn 2 Aktivitäten zu haben, wenn wir nicht zu der zweiten wechseln können. Daher werden wir uns jetzt Knöpfe erstellen um zur zweiten wechseln zu können.

Ändern der Benutzeroberfläche / UI

Es gibt 3 verschiedene Wege die UI in unserer App zu ändern. Die erste und wahrscheinlich einfachste ist, wenn wir das Graphical Layout benutzen. Diese Funktion nimmt den Code aus der .xml und zeigt ihn live an. Die zweite Möglichkeit ist es den Code manuell anzupassen. Die dritte ist es den Code in Java zu programmieren. Für diese Lektion werden wir die ersten beiden Varianten uns vornehmen.

Als erstes öffnen wir unsere MainActivity.java, dies ist unsere erste Seite die wir sehen, wenn wir unsere App starten. Die onCreate Methode, ist die Methode die aufgerufen wird, wenn wir unsere Aktivität starten.

In einer der vorherigen Lektionen haben wir schon mal darüber gesprochen, wie der Code unserer Aktivität in dem Layout angezeigt wird. In unserem Fall finden wir die xml unter:

res > layout > activity_main.xml.

Wenn wir dies öffnen, können wir die graphische Oberfläche und die XML öffnen. Dies sieht dann so aus:

K5L5B7 K5L5B8

Dies sind die 2 einfachen Wege, die selbe Datei zu ändern. Wir werden nun bei der graphischen Oberfläche unsere Knöpfe hinzufügen.

Als erstes löschen wir den Text. Dafür klicken wir einfach auf den Text und drücken rechte Maustaste und Löschen. Nun schaut ihr links in der Spalte nach Button, dies ist unserer Knopf. Nun zieht ihr bitte einfach dieses Widget 4 mal in unsere App. Wie ihr erkennen könnt, könnt ihr die Knöpfe gleich mit ausrichten. Nun sollten wir den folgenden Stand haben:

K5L5B10

In unserer xml Datei sieht es wie folgt aus:

K5L5B11

Wenn ihr nun einfach auf jeden einzelnen Knopf drückt und auf edit Text geht, könnt ihr diese umbenennen. Unter Layout Hight und Width könnt ihr auch die Größen ändern.

K5L5B12

Wenn wir unsere App nun auf unseren Geräten laufen lassen, merken wir recht schnell, die Knöpfe können noch nichts. Daher werden wir als nächstes einen Listener in unsere MainActivity.Java programieren.

1. Als erstes müssen wir Variablen erzeugen

2. Nun mit STRG + Shift + O oder mit dem Mauszeiger über Button und Android.widget.Button importieren

3. Nun werden wir die Knöpfe initialisieren in der onCreate Methode. Um dies zu tun, nutzen wir die ID jedes Buttons. Button B1 sollte die ID button1 haben und so weiter.

findViewById schaut nach, wo unsere Buttons sind und weißt diesem Feld unsere Buttons zu. Wir erzeugen somit quasi aus dem Bereich der den Button darstellt einen Knopf zum drücken.

4. Jetzt müssen wir noch den onCklick Listener hinzufügen:

Jetzt müssen wir noch den Listener in unserer onCreate Methode erstellen. Wenn wir dies nicht erstellen, können von unseren Knöpfen nie befehle ausgehen.

Ihr müsst auch schauen das ihr alle Importierungen richtig habt.

Nun haben wir es geschafft, dass unsere App auf unseren Klick den Knopf richtig erkennt. Momentan haben wir aber noch keinen Befehl in den leeren Code eingefügt, was wir damit vor haben. Wir können hier alles machen, was wir wollen. Wir werden jetzt die secondActivity starten.

5. Dafür werden wir die folgende Methode hinzufügen:

6. Nun müssen wir noch in unseren onClick Listener den entsprechenden Code einfügen:

Diese Methode ist ganz klar und einfach. Wir nehmen einen Integer als Parameter. In der ersten Zeile erstellen wir einen Intent, welcher die Aktivität (MainActivity) zur SecondActivity überträgt. Danach fügen wir einen Wert, die Nummer unseres Knopfes, dem Intent hinzu. Dabei ist der Schlüssel unseres Buttons, damit wir immer nachvollziehen können, was passiert ist. Zum Schluss rufen wir die startActivity auf, mit dem neu erstellen Intent. Dies wird nun die secondActivity aufrufen, egal welchen Knopf wir drücken und sendet auch wieder eine Nachricht, durch welche wir nachvollziehen können was passiert.

K5L5B13 K5L5B14

 

Hier auch nochmal mein Code zum Abschluss:

 

Wenn wir nun unsere Architektur der App genauer anschauen, wird diese langsam klar. Der Punkt 5 werden wir in der nächsten Lektion klären.

K5L3B1

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 4 - Erstellen einer Musik App Teil 1 Lektion 6 - Erstellen einer Musik App Teil 3

Mrz 052015
 

Als erstes, es geht weiter. Bin nun leider 4 Tage die Woche auf Montage und da habe ich abends Zeit zum schreiben. Als erster werden wir die angefangene Musik App fertigstellen und dann werden wir ein weiteres Spiel programmieren.

Hier möchte ich euch das Eclipse ADT Bundle für Windows neu zum Download bereit stellen. Google hat nun komplett auf sein Android Studio umgestellt und daher ist es etwas schwieriger, dass alte Bundle auf welchem diese Anleitung aufbaut zu finden.

Für alle die ab hier weiter arbeiten können, viel Spaß. Für alle andere hoffe ich die Vorfreude wieder geweckt zu haben.

Neue Download Links:

Eclipse ADT Bundle 64 Bit

Eclipse ADT Bundle 32 Bit

Feb 192014
 

Lange Lange ist es her seit dem ich das letzte Kapitel veröffentlicht habe, daher möchte ich mich heute mal hier melden und ein kurzes Statement abgeben wie es denn weitergehen soll.

Als erstes, es geht definitiv weiter.

Die Frage ist nur wann? Ich habe momentan viel zu tun. Meine Tochter wächst und gedeiht. Mittlerweile ist sie 9 Monate alt und ich finde daheim nur noch Zeit für sie. Die neu gegründete Firma ist sehr gut gestartet und wir haben viel zu tun.

Leider fehlt mir in dieser Konstellation momentan die Zeit hier weitere Lektionen zu veröffentlichen. Ich hoffe, dass ich mir bald wieder ein paar Minuten am Tag dafür freimachen kann. Daher möchte ich euch Fragen ob ihr Basteldroid und allen Lesern nicht ein wenig helfen wollt?

Seit nun bitte nicht gleich abgeschreckt, so schwer ist das gar nicht. Wenn ihr abseits der Anleitung programmiert habt und neue Dinge versucht habt, die euch gelungen sind, dann schreibt diese in einer kurzen Anleitung nieder und lasst sie mir zukommen. Ich kann diese dann hier veröffentlichen, gerne könnt ihr auch eure eigenen Lektionen schreiben und hier online stellen.

Diese Seite ist dafür gedacht jedem das grundlegende Wissen der Programmierung zu vermitteln. Jedes kleine Schnipsel ist hilfreich. Es gibt viele Wege zum Ziel, also helft diese hier zu zeigen.

Sep 102013
 

Diese Lektion ist kurz und knapp.

Jede App sollte anständig von einem Benutzer beendet werden können, damit diese den belegten Speicher wieder für andere Anwendungen freigibt. Dies gelingt mit dem Codeschnipsel

android.os.Process.killProcess(android.os.Process.myPid());

Dieser Code kann dann Beispielsweise beim drücken der Zurück-Taste im Hauptmenü aufgerufen werden. Natürlich kann man diesen auch bei einem Touchevent (Button) ausführen.

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.

Lektion 10 - Mehrere Levels Kapitel 5 - Erstellen von Standart Android Apps