![Page 1: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/1.jpg)
Android-App/NerdKalender
Martin PerstorferStefan Eckl
![Page 2: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/2.jpg)
Gliederung
1. Allgemeines über Android
2. Projektbeschreibung
3. Livevorführung
4. Vorbereitungen
5. Projektumsetzung Teil I
6. Projektumsetzung Teil II
7. Veröffentlichung und Tests
8. Fazit Bildquelle: https://play.google.com/store?
hl=de&tab=w8
![Page 3: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/3.jpg)
Allgemeines über Android
• wurde von der Open Handset Alliance gegründet
• Oktober 2008: Erstes Gerät mit Android
• größter Markanteil unter allen mobilen
Betriebssystemen
• Google übernimmt mehr und mehr die Überhand
![Page 4: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/4.jpg)
Projektbeschreibung
• Projekttitel: NerdKalender
• Anzahl der gelebten Tage der gespeicherten
Kontakte ermitteln und mit Sortierung
darstellen
• Einstellungen sollen variierbar sein
• Ziel: funktionsfähige Version am PlayStore
veröffentlichen
![Page 5: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/5.jpg)
Livevorführung
![Page 6: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/6.jpg)
Vorbereitungen
• Entwicklungsumgebung: Eclipse mit Android SDK
• Programmiersprache: Java
• Hardware zum Debuggen: HTC Wildfire, NEXUS 7
• Nachschlagewerk: Android 3 von Thomas
Künneth(Buch)
![Page 7: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/7.jpg)
Projektumsetzung I
• AndroidManifest.xml
• Startseite
• Alle Kontakte
• Benutzerdefiniert
mit Schnittstelle Einstellungen
![Page 8: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/8.jpg)
AndroidManifest.xml
• Version
• Berechtigungen
• Logo
• MainActivity
• Activity
![Page 9: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/9.jpg)
Startseite
Button bnAlleKontakte = (Button)(this.findViewById(R.id.bnAlleKontakte)); bnAlleKontakte.setOnClickListener( new OnClickListener() {
public void onClick(View v) { Intent intent = new Intent(Start.this,
AlleKontakte.class); StartActivity(intent);}});
![Page 10: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/10.jpg)
Alle Kontakte• Daten
• Vector<Kontakte>
• Layout
• Listenkopf
• Listenitems
KontaktAdapter adapter = new KontaktAdapter(this,R.layout.listview_item_row, kontakt);lvKontakt = (ListView)findViewById(R.id.lvKontkate);View header = (View)getLayoutInflater().inflate(R.layout.listview_header_row, null);lvKontakt.addHeaderView(header); lvKontakt.setAdapter(adapter);
![Page 11: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/11.jpg)
Alle Kontakte
Cursor mainQueryCursor= contentResolver.query(ContactsContract.Contacts.CONTENT_URI, mainQueryProjection,mainQuerySelection, mainQuerySelectionArgs, null);
// Trefferliste abarbeiten...while (mainQueryCursor.moveToNext()) {String contactId = mainQueryCursor.getString(0);String displayName = mainQueryCursor.getString(1);Cursor bdc = bd.query(android.provider.ContactsContract.Data.CONTENT_URI, new String[] { Event.DATA }, android.provider.ContactsContract.Data.CONTACT_ID+" = "+contactId+" AND "+Data.MIMETYPE+" = '"+Event.CONTENT_ITEM_TYPE+"' AND "+Event.TYPE+" = "+Event.TYPE_BIRTHDAY, null, android.provider.ContactsContract.Data.DISPLAY_NAME);… // Geburtsdatum ermitteln und in Vector speichern
![Page 12: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/12.jpg)
Kontakte mit Geburtsdatum
• gleicher Aufbau wie „Alle
Kontakte“
• Sortierung nach:
„Wer hat den nächsten
Runden“
• greift auf Einstellungen zu
![Page 13: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/13.jpg)
Projektumsetzung II• Einstellungen
• Schnittstelle mit Geburtstagsberechnung
• About
![Page 14: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/14.jpg)
StartLayout-Designer xml-Code-Datei
![Page 15: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/15.jpg)
StartStart.java
• OnClickListener = OnClick-Ereigniss (Java)
• ruft die Klasse About auf
• Intent = neue Seite
![Page 16: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/16.jpg)
AboutAbout.java
• erzeugt erst beim onCreate ihr zugehöriges Layout
![Page 17: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/17.jpg)
AboutLayout-Designer xml-Code-Datei
![Page 18: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/18.jpg)
StartLayout-Designer xml-Code-Datei
![Page 19: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/19.jpg)
StartStart.java
• ruft die Klasse Einstellungen auf
![Page 20: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/20.jpg)
Einstellungen
• Preference = Einstellungsmenü
• anstatt setContentView(Layout) hier addPreference
![Page 21: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/21.jpg)
Einstellungenmy_preferences.xml Anzeige
![Page 22: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/22.jpg)
Einstellungenarray.xml Anzeige
![Page 23: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/23.jpg)
StartLayout-Designer xml-Code-Datei
![Page 24: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/24.jpg)
StartStart.java
• ruft die Klasse Benutzerdefiniert auf
![Page 25: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/25.jpg)
BenutzerdefiniertBenutzerdefiniert.java
• Erstellen einer SharedPreference
• auslesen des gewählten Auswahl in einen string
• weitere Verarbeitung
![Page 26: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/26.jpg)
Veröffentlichung und Tests
1. Entwickleraccount bei Google
Play
2. App hochladen (als Betatest)
Beschreibung der App
ein Logo im Format 512x512
Pixel
min. 2 Screenshots
eine Kategorie auswählen
und vieles mehr
3. App veröffentlichen
Bildquelle: cdn.crackberry.com/sites/crackberry.com/files/styles/large/public/topic_images/2013/ANDROID.png%3Fitok%3Dxhm7jaxS
![Page 27: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/27.jpg)
Fazit
• Herausforderung, da neues Themengebiet
• Ziel erreicht App als Testversion am
PlayStore
• Aktueller Stand: Version 0-9-4
• weitere Ideen für nächstes Schuljahr
• kann ich nur weiterempfehlen!
![Page 28: Android-App/NerdKalender Martin Perstorfer Stefan Eckl](https://reader036.vdocuments.site/reader036/viewer/2022062318/55204d7349795902118c6bb1/html5/thumbnails/28.jpg)
Danke für ihre Aufmerksamkeit!