Tutorial. Programmierung einer Android-Applikation. Teil 1



Ähnliche Dokumente
Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Bedienungsanleitung für den Online-Shop

Kleines Handbuch zur Fotogalerie der Pixel AG

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Handbuch für Easy Mail in Leicht Lesen

DOKUMENTATION VOGELZUCHT 2015 PLUS

Einkaufslisten verwalten. Tipps & Tricks

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Das Modul Hilfsmittel ermöglicht den Anwender die Verwaltung der internen Nachrichten, Notizen, Kontakte, Aufgaben und Termine.

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Die nachfolgende Anleitung zeigt die Vorgehensweise unter Microsoft Windows Vista.

Titel. SCSM ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab

Eigene Seiten erstellen

Der Kalender im ipad

Änderung des Portals zur MesseCard-Abrechnung

Google Android API. User Interface. Eine knappe Einführung

Benutzeranleitung Superadmin Tool

GeoPilot (Android) die App

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Naviki GPS-Anwendungsentwicklung für Mobiltelefone

Sich einen eigenen Blog anzulegen, ist gar nicht so schwer. Es gibt verschiedene Anbieter. ist einer davon.

TYPO3-Zusatzkurs für

Bedienungsanleitung. Matthias Haasler. Version 0.4. für die Arbeit mit der Gemeinde-Homepage der Paulus-Kirchengemeinde Tempelhof

Accounts und Kontakte in Android

Anlegen eines SendAs/RecieveAs Benutzer unter Exchange 2003, 2007 und 2010

Kostenstellen verwalten. Tipps & Tricks

Modul Bildergalerie Informationen zum Bearbeiten des CMS-Systems für den SV Oberteisendorf

K. Hartmann-Consulting. Schulungsunterlage Outlook 2013 Kompakt Teil 1

Ablaufbeschreibung Einrichtung EBICS in ProfiCash

Handbuch ECDL 2003 Professional Modul 2: Tabellenkalkulation Vorlagen benutzen und ändern

Geben Sie in dem offenen Suchfeld den Namen Ihrer Einrichtung ein und klicken Sie auf Suchen.

Handbuch. Adressen und Adressenpflege

Lehrer: Einschreibemethoden

ACDSee 10. ACDSee 10: Fotos gruppieren und schneller durchsuchen. Was ist Gruppieren? Fotos gruppieren. Das Inhaltsverzeichnis zum Gruppieren nutzen

Tevalo Handbuch v 1.1 vom

Anleitung für Kasse App (freie Version)

IAWWeb PDFManager. - Kurzanleitung -

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Online-Fanclub-Verwaltung

Anleitung zum Bestellformular für Visitenkarten UZH

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Anleitung für KassePro (ab Version 2.0)

Einführung Internet Adresse Passwort Klick auf Ansicht der Mailbox nach dem Einloggen

Tipps & Tricks Neuerungen Nr. 5/ Externe Web-Shops im UniKat für Laborverbrauchsmaterial & Chemikalien

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Kommunikations-Management

Speichern. Speichern unter

Web-Erfassung von Veranstaltungen

ClubWebMan Veranstaltungskalender

EH2000 Ablauf am Morgen

TTS - TinyTimeSystem. Unterrichtsprojekt BIBI

FastBill Automatic. Dokumentation Versand. FastBill GmbH. Holteyer Straße Essen Telefon Telefax

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Mit einem Mausklick sind s aus ACT! heraus in Outlook geschrieben, die dann wiederum auf Wunsch in ACT! dokumentiert werden.

Synthax OnlineShop. Inhalt. 1 Einleitung 3. 2 Welche Vorteile bietet der OnlineShop 4

Ein Projekt mit JavaFX erstellen

TYPO3 Super Admin Handbuch

Mobile Umfragen Responsive Design (Smartphone & Tablet)

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

1. Arbeiten mit dem Touchscreen

Kurz-Anleitung. Die wichtigsten Funktionen. Das neue WEB.DE - eine Übersicht. s lesen. s schreiben. Neue Helfer-Funktionen

Werkschau Web-Präsentationen

Aufruf der Buchungssystems über die Homepage des TC-Bamberg

COSIDNS 2 ISPconfig3. Version 0.1 ( )

VERWALTUNG. Postfächer, Autoresponder, Weiterleitungen, Aliases. Bachstraße 47, 3580 Mödring

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Funktionsbeschreibung. Lieferantenbewertung. von IT Consulting Kauka GmbH

Outlook 2000 Thema - Archivierung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Profi cash 10. Electronic Banking. Installation und erste Schritte. Ihre Spezialisten für den elektronischen Zahlungsverkehr und moderne Bezahlsysteme

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

myreport Benutzerhandbuch Active Tracing 3.1 Volle Transparenz Durchgehende Sendungsverfolgung und Status Reporte

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Mediumwechsel - VR-NetWorld Software

App Entwicklung mit dem Android SDK

1 Einleitung. Lernziele. Dokumente vergleichen. Änderungen mit Überarbeitungsfenster bearbeiten Lerndauer. 4 Minuten.

Bedienungsanleitung für die Online Kinderbetreuungsbörse des Landkreises Osnabrück

Klassenverwaltung im FIS-Lernportal

Dokumentation PuSCH App. windows-phone

Newsletter. 1 Erzbistum Köln Newsletter

inviu routes Installation und Erstellung einer ENAiKOON id

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Handbuch B4000+ Preset Manager

Android GUI Entwicklung

Anwendungsbeispiele Buchhaltung

Tutorial. Programmierung einer Android-Applikation Notizzettel. Teil 2

Adminer: Installationsanleitung

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Da ist meine Anleitung drin!

Kurzeinführung Moodle

Anleitung zur Webservice Entwicklung unter Eclipse

Kalenderfunktion in Open-Xchange richtig nutzen (PC-Support)

Kulturobjekte der Donau Das ContentManagementSystem (CMS)

Transkript:

Tutorial Programmierung einer Android-Applikation Teil 1 Autor: Oliver Matle Datum: März 2014, Version 1.0 Autor: Oliver Matle, www.matletarium.de Seite 1 von 28

Inhaltsverzeichnis Kapitel 1 Einleitung...3 Fachliche Beschreibung...4 Übersicht aller Activities...4 Aufrufstruktur der verschiedenen Activities...5 Kapitel 2 Activity anlegen...6 Anlegen der Start-Activity...6 Anlegen der Activity Create Memo...8 Anlegen der Activity Show Memos...13 Anlegen der Activity Show Memo...15 Kapitel 3 Anlegen der Controller...17 Anlegen des Controllers für die Activity_Start...17 Anlegen des Controllers für die Activity_CreateMemo...19 Anlegen des Controllers für die Activity_Showmemos...20 Anlegen des Controllers für die Activity_ShowMemo...21 Kapitel 4 Projektkonfiguration...23 Kapitel 5 Zusammenfassung und Ausblick zum Teil 2...25 Anhang A - Neues Android-Projekt anlegen...26 Autor: Oliver Matle, www.matletarium.de Seite 2 von 28

Kapitel 1 Einleitung In diesem Tutorial wird die Programmierung einer Android-App beschrieben, mit der man persönliche Notizen verwalten kann. Der erste Teil des Tutorial beschränkt sich auf den Bereich Navigation innerhalb einer App. Die App kann keine Notizen speichern, verarbeiten oder darstellen. Auf die Ausgestaltung der Oberfläche wurde wegen der Übersichtlichkeit weitestgehend verzichtet. In der Fortsetzung des Tutorials werden weitere Teilaspekte erklärt und die Appliaktion wird um fehlende Funktionalitäten erweitert. Dieses Tutorial ist für Android-Anfänger, jedoch nicht für Java-Anfänger geeignet. Eine detailierter Beschreibung im Umgang mit Eclipse findet hier ebenfalls nicht statt. Diese Tutorials sind für den privaten Gebrauch kostenlos, unterliegen aber dem Urheberrecht. Für Schäden kann keine Haftung übernommen werden. Die Nutzung der Programme erfolgt auf eigene Gefahr. Die Programme wurden getestet. Eine Garantie, dass die Programme immer und überall ohne Fehler laufen, kann nicht gewährleistet werden. Alle genannten Namen sind Eigentum der jeweiligen Rechteinhaber. Autor: Oliver Matle, www.matletarium.de Seite 3 von 28

Fachliche Beschreibung Eine Notiz besteht aus einem Thema und einem Notizinhalt, also dem eigentlichen Text. Notizen können neu angelegt, gelöscht oder geändert werden. Eine Liste zeigt alle Notizenthemen an. In einer Detailansicht kann man den Notizeninhalt lesen, ändern oder löschen. Übersicht aller Activities Die Start-Activity zeigt nur Buttons an und soll folgende Kommandos anbieten. Neue Notiz anlegen Liste der Notizen anzeigen Die Activity Liste der Notizen zeigt alle Notizen als Liste an und soll folgende Kommandos anzeigen. Neue Notiz anlegen Zurück Die Activity Notiz anzeigen zeigt den Notiztext an und soll folgende Kommandos anbieten. Notiz ändern Notiz löschen Zurück Die Activity Neue Notiz anlegen zeigt jeweils ein Eingabefeld für die Überschrift und den Notiztext an und soll folgende Kommandos anbieten. Speichern Abbruch Diese Activity dient außerdem auch zum Ändern einer Notiz. Dabei wird die aktuell ausgewählte Notiz angezeigt. Activity technischer Activity-Name Controllerklasse Start-Activity activity_start StartActivity Liste der Notizen activity_show_memos ShowMemosActivity Notizen anzeigen activity_show_memo ShowMemoActivity Neue Notiz anlegen activity_create_memo CreateMemoActivity Autor: Oliver Matle, www.matletarium.de Seite 4 von 28

Aufrufstruktur der verschiedenen Activities Start- Activity ShowMemos- Activity CreateMemo- Activity / ChangeMemo - Activity ShowMemo- Activity Autor: Oliver Matle, www.matletarium.de Seite 5 von 28

Kapitel 2 Activity anlegen Jeder Bildschirminhalt ist eine sogenannte Activity. Diese besteht aus einer View, also einer grafischen Oberfläche und einem Controller, der die Daten bereitstellt und auf Ereignisse wie das Drücken auf einen Button reagiert. In diesem Kapitel werden alle Activities beschrieben. Anlegen der Start-Activity Die erste Activity wurde bereits beim Anlegen des Projekts erstellt. Wir haben ihr den Namen activity_start gegeben. Diese befindet sich im Zweig res/layout/activity_start.xml und hat folgenden Inhalt. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".startactivity" > <TextView android:id="@+id/textview1" android:layout_width="wrap_content" android:text="@string/label" /> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="70dp" android:layout_alignleft="@+id/button2" android:layout_below="@+id/button2" android:layout_margintop="16dp" android:text="@string/label" /> <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="70dp" android:layout_alignleft="@+id/textview1" android:layout_below="@+id/textview1" android:layout_margintop="34dp" android:text="@string/label" /> </RelativeLayout> Es wird eine TextView sowie zwei Button definiert. Über die ID lassen sich diese Objekte später aus dem Controller heruas ansprechen. Die Funktion der beiden Buttons ist hierbei noch offen, weshalb die technischen Namen auch allgemein gehalten werden. Sollte sich nämlcih später daran Autor: Oliver Matle, www.matletarium.de Seite 6 von 28

etwas ändern, wäre es verwirrend wenn die technischen Namen nicht mehr der Funktionalitäten entsprächen. Das Layout entspricht ungefähr dem folgenden Bild, wobei zum Zeitpunkt der Bilderstellung die Inhalte der TextView und der Buttons bereits durch den Controller mit richtigen Werten bzw. Zeichenkettten belegt wurden. Doch dazu später mehr. Autor: Oliver Matle, www.matletarium.de Seite 7 von 28

Anlegen der Activity Create Memo Die zweite Activity wird mit dem Wizzard von Eclipse angelegt. Dazu wählt man im Kontextmenü des Projektes Neu/Other. Hier wählt man Android Activity aus. Autor: Oliver Matle, www.matletarium.de Seite 8 von 28

Die folgenden Eigenschaften einfach mit dem Button Next/Weiter übernehmen. Hier wählt man einen sinnvollen Namen wie CreateMemoActivity. Autor: Oliver Matle, www.matletarium.de Seite 9 von 28

Mit dem Button Next gelangt man zum letzten Wizzard-Dialog. Er zeigt alle Änderungen an, die jetzt durchgeführt werden. Mit dem Button Finish werden alle Dateien angelegt und die Konfigurationen in die entsprechenden Dateien eingetragen. Autor: Oliver Matle, www.matletarium.de Seite 10 von 28

Die Datei activity_create_memo.xml muss folgenden Inhalt erhalten. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/linearlayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".creatememoactivity" > <TextView android:id="@+id/label1" android:layout_width="wrap_content" android:text="@string/hello_world" /> <EditText android:id="@+id/edittexttheme" android:layout_width="match_parent" android:lines="1" android:maxlines="1" android:maxlength="28" android:ems="10" android:gravity="top" android:inputtype="text"> <requestfocus /> </EditText> <TextView android:id="@+id/label2" android:layout_width="wrap_content" android:text="@string/hello_world" /> <EditText android:id="@+id/edittextmemotext" android:layout_width="match_parent" android:layout_height="0dip" android:layout_weight="0.25" android:ems="10" android:lines="10" android:gravity="top" android:inputtype="textmultiline" /> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" > <Button android:id="@+id/button1" Autor: Oliver Matle, www.matletarium.de Seite 11 von 28

</LinearLayout> android:layout_width="wrap_content" android:text="button" android:textsize="12sp" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:text="button" android:layout_marginleft="10dp" android:textsize="12sp" /> </LinearLayout> In dieser Activity ist eine TextView definiert, die später einen kleinen Beschreibungstext anzeigen soll. Die beiden EditText-Objekte nehmen das Thema sowie den Notiztext auf. Mit den beiden Buttons steuern speichern wir die Notiz ab oder verlassen die Activity wieder. Das Layout ist so gestaltet, dass die Textview und die beiden Edittext-Felder untereinander angeordnet sind (vertical) und die beiden Buttons nebeneinander (horizontal). Siehe dazu das TAG android:orientation. Das Layout sieht ungefähr wie folgt aus. Wobei auch hier durch den Controller bereits die korrekten Beschriftungen hinterlegt wurden. Damit man sich die Ansicht besser vorstellen kann, wurde eine Notiz Einkaufen sowie ein passender Text erfasst. Autor: Oliver Matle, www.matletarium.de Seite 12 von 28

Anlegen der Activity Show Memos Analog zum Anlegen der Activity Create Memo verwendet man wieder den Eclipse-Wizzard. Der Inhalt der Datei activity_show_memos.xml ist wie folgt. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/linearlayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".showmemosactivity" > <ListView android:id="@+id/listview1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.30" > </ListView> <LinearLayout android:layout_width="fill_parent" android:orientation="horizontal" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:text="button" android:textsize="12sp" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_marginleft="10dp" android:text="button" android:textsize="12sp" /> </LinearLayout> </LinearLayout> In dieser Activity wird neben den bereits verwendeten und bekannten Objekten wie Buttons und Textfelder auch eine Liste verwendet, die alle Notizen untereinander anzeigt. Autor: Oliver Matle, www.matletarium.de Seite 13 von 28

Das Layout sieht ungefähr wie folgt aus, wobei die Liste deshalb nicht dargestellt wird, weil keine Notizen vorhanden sind. Autor: Oliver Matle, www.matletarium.de Seite 14 von 28

Anlegen der Activity Show Memo Analog zum Anlegen der Activity Create Memo verwendet man wieder den Eclipse-Wizzard. Der Inhalt der Datei activity_show_memo.xml ist wie folgt. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/linearlayout1" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".showmemoactivity" > <LinearLayout android:layout_width="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textview1" android:layout_width="fill_parent" android:text="@string/hello_world" /> <TextView android:id="@+id/textview2" android:layout_width="wrap_content" android:text="textview" /> </LinearLayout> <TextView android:layout_height="0dip" android:layout_width="fill_parent" android:layout_weight="1" /> <LinearLayout android:layout_width="match_parent" android:orientation="horizontal" android:layout_gravity="bottom"> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:text="button" android:textsize="12sp"/> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_marginleft="10dp" android:text="button" android:textsize="12sp"/> Autor: Oliver Matle, www.matletarium.de Seite 15 von 28

<Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_marginleft="10dp" android:text="button" android:textsize="12sp"/> </LinearLayout> </LinearLayout> Das Layout sieht ungefähr wie folgt aus. Autor: Oliver Matle, www.matletarium.de Seite 16 von 28

Kapitel 3 Anlegen der Controller Die Controller sind Java-Klassen und befnden sich im Zweig src und darunter in einem Java- Package. Die Controller stellen die Daten zur Verfügung, kümmern sich um die Beschriftung der View-Objekte und reagieren auf die Benutzereingaben. Anlegen des Controllers für die Activity_Start Die Controllerklasse dieser Activity befindet sich in der Datei src/de.matletarium.android.tutorial1.startactivity. Zunächst werden die Objekte der GUI definiert und mit Null initialisiert. public class StartActivity extends Activity { TextView textview1=null; Button buttonnewmemo=null; Button buttonshowmemolist=null; In der Methode oncreate lesen wir die Referenzen der Objekte aus der View und weisen sie unseren lokalen Variablen zu. Die View ist dem Controller mit der Anweisung setcontentview bekannt gemacht worden. Siehe dazu auch die Datei gen/de.matletarium.android.tutorial1.r.java. protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_start); // 1. Objekte aus der View lesen textview1= (TextView) findviewbyid(r.id.textview1); buttonnewmemo= (Button) findviewbyid(r.id.button1); buttonshowmemolist= (Button) findviewbyid(r.id.button2); Anschließend setzt man die gewünschten Texte und Startwerte. Hier werden die Buttons und Labels beschriftet. Der Einfachheit halber werder die Texte hier hart verdrahtet und nicht wie sonst üblich nach dem Prinzip i18n aus einer Sprachendatei gelesen. // 2. Objekte initialisieren textview1.settext("wählen Sie ein Kommando aus:"); buttonnewmemo.settext("neue Notiz anlegen..."); buttonshowmemolist.settext("notizenliste anzeigen..."); Zuletzt registriert man die ActionListener und weißt ihnen Methoden zu. // 3. ActionListener registrieren buttonnewmemo.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttonnewmemo(); ); Autor: Oliver Matle, www.matletarium.de Seite 17 von 28

buttonshowmemolist.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttonshowmemolist(); ); Die beiden Handler-Methoden rufen jeweils eine andere Activity auf, einmal die Activity CreateMemo und einmal ShowMemos. private void handlebuttonnewmemo(){ Intent i= new Intent(StartActivity.this,CreateMemoActivity.class); startactivity(i); private void handlebuttonshowmemolist(){ Intent i= new Intent(StartActivity.this,ShowMemosActivity.class); startactivity(i); Autor: Oliver Matle, www.matletarium.de Seite 18 von 28

Anlegen des Controllers für die Activity_CreateMemo Auch hier erfolgt die Initialisierung auf die gleiche Weise. Datei: CreateMemoActivity.java protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_create_memo); // 1. Objekte aus der View lesen textview1 = (TextView)findViewById(R.id.label1); textview2 = (TextView)findViewById(R.id.label2); buttonsave= (Button) findviewbyid(r.id.button1); buttoncancel= (Button) findviewbyid(r.id.button2); edittexttheme= (EditText) findviewbyid(r.id.edittexttheme); edittextmemo= (EditText) findviewbyid(r.id.edittextmemotext); // 2. Objekte initialisieren textview1.settext("thema"); textview2.settext("text"); buttonsave.settext("speichern"); buttoncancel.settext("abbrechen"); edittexttheme.settext(""); edittextmemo.settext(""); // 3. ActionListener registrieren buttonsave.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttonsave(); ); buttoncancel.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttoncancel(); ); Weil noch keine Daten angezeigt oder verarbeitet werden, wird über die GUI mit der Methode Toast nur darüber informiert, dass der Button angeklickt wurde. Der Button Cancel sorgt per finish dafür, dass wieder die vorherige Activity aufgerufen wird und verlässt die aktuelle Activity. private void handlebuttonsave(){ Toast.makeText(CreateMemoActivity.this,"Speichere Notiz.", Toast.LENGTH_SHORT).show(); private void handlebuttoncancel(){ finish(); Autor: Oliver Matle, www.matletarium.de Seite 19 von 28

Anlegen des Controllers für die Activity_Showmemos Auch hier erfolgt die Initialisierung auf die gleiche Weise. Datei: ShowMemosActivity.java protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_show_memos); // 1. Objekte aus der View lesen alistview= (ListView) findviewbyid(r.id.listview1); buttonnewmemo= (Button) findviewbyid(r.id.button1); buttongoback= (Button) findviewbyid(r.id.button2); // 2. Objekte initialisieren buttonnewmemo.settext("neue Notiz anlegen..."); buttongoback.settext("zurück"); // 3. ActionListener registrieren buttonnewmemo.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttonnewmemo(); ); buttongoback.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttongoback(); ); Die durch den Listener aufgerufenen Methoden sorgen für die Anzeige und Aktvierung (Intent)der jeweiligen Activities oder aber das zurückspringen (finish)in die vorherige Ansicht. private void handlebuttonnewmemo(){ Intent i= new Intent(ShowMemosActivity.this,CreateMemoActivity.class); startactivity(i); private void handlebuttongoback(){ finish(); Autor: Oliver Matle, www.matletarium.de Seite 20 von 28

Anlegen des Controllers für die Activity_ShowMemo Der Inhalt des letzten Controllers zeigt altbekanntes. Dasgleiche Spiel mit den GUI-Objekten, den ActionListenern und den Händlern. Datei: ShowMemoActivity.java protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_show_memo); // 1. Objekte aus der View lesen textviewtheme = (TextView)findViewById(R.id.textView1); textviewmemotext = (TextView)findViewById(R.id.textView2); buttongoback= (Button) findviewbyid(r.id.button1); buttonchange= (Button) findviewbyid(r.id.button2); buttondelete= (Button) findviewbyid(r.id.button3); // 2. Objekte initialisieren textviewtheme.settext("notizthema"); textviewmemotext.settext("notiz-inhalt"); buttonchange.settext("ändern..."); buttondelete.settext("löschen"); buttongoback.settext("zurück"); // 3. ActionListener registrieren buttonchange.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttonchange(); ); buttondelete.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttondelete(); ); buttongoback.setonclicklistener(new View.OnClickListener() { @Override public void onclick(view v) { handlebuttongoback(); ); Autor: Oliver Matle, www.matletarium.de Seite 21 von 28

private void handlebuttonchange(){ Intent i= new Intent(ShowMemoActivity.this,CreateMemoActivity.class); startactivity(i); private void handlebuttondelete(){ Toast.makeText(ShowMemoActivity.this, "Lösche Notiz.",Toast.LENGTH_SHORT).show(); private void handlebuttongoback(){ finish(); Autor: Oliver Matle, www.matletarium.de Seite 22 von 28

Kapitel 4 Projektkonfiguration Das Zusammenspiel aller Activities, Controllern sowie der Stringkonstanten erfolgt in anderen XML-Dateien. In der Datei res/values/strings.xml werden die Stiringkonstanten definiert. Hier stehen die Titel der einzelnen Activities sowie der App-Name. <?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">notizenverwaltung</string> <string name="action_settings">settings</string> <string name="hello_world">hello world!</string> <string name="label">label</string> <string name="title_activity_show_memos">notizen-liste</string> <string name="title_activity_create_memo">notiz anlegen</string> <string name="title_activity_show_memo">notiz-inhalt</string> </resources> In der Manifest-Datei res/androidmanifest.xml werden alle Activities aufgelistet. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="de.matletarium.android.tutorial1" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="15" /> <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name="de.matletarium.android.tutorial1.startactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <activity android:name="de.matletarium.android.tutorial1.showmemosactivity" android:label="@string/title_activity_show_memos" > </activity> <activity android:name="de.matletarium.android.tutorial1.creatememoactivity" android:label="@string/title_activity_create_memo" > </activity> Autor: Oliver Matle, www.matletarium.de Seite 23 von 28

<activity android:name="de.matletarium.android.tutorial1.showmemoactivity" android:label="@string/title_activity_show_memo" > </activity> </application> </manifest> Insgesamt ergibt sich jetzt folgendes Bild der Eclipse-Entwicklungsumgebung mit allen besprochenen Dateien. Autor: Oliver Matle, www.matletarium.de Seite 24 von 28

Kapitel 5 Zusammenfassung und Ausblick zum Teil 2 In diesem Tutorial wurde gezeigt, wie man mehrere View, sogenannte Activities, erstellt und mit Hilfe von Buttons dorthin navigiert. Auf schöne Oberflächen wurde verzichtet. Es fehlen auch Funktionen zum Umgang und der Anzeige von Daten. Im nächsten Teil soll die Oberfläche etwas schöner gestaltet werden. Außerdem sollen sich Notizen erfassen und speichern lassen. Autor: Oliver Matle, www.matletarium.de Seite 25 von 28

Anhang A - Neues Android-Projekt anlegen Diese Projekt kann ganz einfach selbst erstellt werden. Projektnamen vergeben... Autor: Oliver Matle, www.matletarium.de Seite 26 von 28

auf Next klicken... Autor: Oliver Matle, www.matletarium.de Seite 27 von 28

Mit Finish wird das Projekt angelegt. Autor: Oliver Matle, www.matletarium.de Seite 28 von 28