• Keine Ergebnisse gefunden

Handbuch im Fach „Mobile Programmierung mit Android“

N/A
N/A
Protected

Academic year: 2021

Aktie "Handbuch im Fach „Mobile Programmierung mit Android“"

Copied!
501
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Fachbereich

Automatisierung und Informatik Wernigerode

Handbuch

im Fach

„Mobile Programmierung mit Android“

SoSe 20201

Stand 06.10.2021

(2)

Inhaltsverzeichnis

1 Abbildungsverzeichnis ____________________________________________________________ 10 2 Android ________________________________________________________________________ 15 2.1 Installation ________________________________________________________________________ 15

2.1.1 Erste Installation ___________________________________________________________________________ 15 2.1.2 Zweite Installation _________________________________________________________________________ 18

2.2 Erstellen eines neuen Projektes _______________________________________________________ 23 2.3 SDK-Installation ____________________________________________________________________ 25

2.3.1 • SDK durch das Android-Studio runterladen ____________________________________________________ 25 2.3.2 • SDK durch einen Link runterladen ____________________________________________________________ 28

2.4 Virtuelle Maschine (AVD-Manager) ____________________________________________________ 29 3 Bilder der Projekte _______________________________________________________________ 36

3.1 Spritverbrauch _____________________________________________________________________ 36 3.2 BottomBar Add/Sub/Mult ___________________________________________________________ 37 3.3 TabbedBar Add/Sub/Mult ____________________________________________________________ 38 3.4 Add/Sub/Mult mit Optionsmenu ______________________________________________________ 39 3.5 Swipe-Activity _____________________________________________________________________ 40 3.6 MyNavigation _____________________________________________________________________ 41 3.7 Einfache ListView ___________________________________________________________________ 42 3.8 ListView mit Studenten Datenbank (DataOutputStream) ___________________________________ 43 3.9 ListView mit CheckBoxen ____________________________________________________________ 44 3.10 SQLite (Einstieg) ____________________________________________________________________ 45 3.11 ListView mit Studenten Datenbank (SQLite) _____________________________________________ 46 3.12 Chronometer ______________________________________________________________________ 47 3.13 AlleSensoren ______________________________________________________________________ 48 3.14 XYGrafik __________________________________________________________________________ 49 4 Erste einfache Beispiele ___________________________________________________________ 52

4.1 Wichtige Grundeigenschaften von UI-Elementen _________________________________________ 52 4.2 Erstes Beispiel _____________________________________________________________________ 54

4.2.1 UI-Prinzip _________________________________________________________________________________ 54 4.2.2 Erstellen eines Projektes ____________________________________________________________________ 54 4.2.3 UI-View __________________________________________________________________________________ 56 4.2.4 Umbau des Projektes _______________________________________________________________________ 58 4.2.5 Schalter einfügen __________________________________________________________________________ 60 4.2.6 Zweiten PlainText eintragen __________________________________________________________________ 62 4.2.7 Java-Code ________________________________________________________________________________ 64

4.3 Zweites Beispiel mit UI-Elementen _____________________________________________________ 68

4.3.1 Anlegen eines neuen Projektes _______________________________________________________________ 68 4.3.2 Anlegen der UI-Elemente ____________________________________________________________________ 68 4.3.3 Anlegen von einer RadioGroup: _______________________________________________________________ 69 4.3.4 Anlegen von zwei RadioButtons: ______________________________________________________________ 69 4.3.5 Anlegen eines Switches: _____________________________________________________________________ 70 4.3.6 Anlegen eines Spinner (Haupteintrag: Containers): _______________________________________________ 70 4.3.7 Anlegen eines 2. Spinner (Haupteintrag: Containers): _____________________________________________ 70

(3)

4.3.8 Anlegen eines ToggleButtons _________________________________________________________________ 71 4.3.9 Anlegen eines Buttons ______________________________________________________________________ 71 4.3.10 Anlegen eines MultiLineTextes _____________________________________________________________ 71 4.3.11 onClickAction ___________________________________________________________________________ 72 4.3.12 Java-Code ______________________________________________________________________________ 73

4.4 Drittes Beispiel mit UI-Elementen: Add/Sub-Rechner ______________________________________ 77

4.4.1 Anlegen eines neuen Projektes _______________________________________________________________ 77 4.4.2 Anlegen der UI-Elemente ____________________________________________________________________ 77 4.4.3 Java_Code ________________________________________________________________________________ 84

4.5 Beispiel Spritverbrauch ______________________________________________________________ 87

4.5.1 String-Konstanten __________________________________________________________________________ 89 4.5.2 Farb-Konstanten ___________________________________________________________________________ 90 4.5.3 Spezifikation der UI-Elemente ________________________________________________________________ 90 4.5.4 Java-Code ________________________________________________________________________________ 92 4.5.5 Speichern der Eingabedaten _________________________________________________________________ 94 4.5.6 Laden der Eingabedaten _____________________________________________________________________ 94

5 Einfache UI-Elemente _____________________________________________________________ 95 5.1 TextView (Label) ___________________________________________________________________ 95 5.2 EditText __________________________________________________________________________ 96

5.2.1 Abfrage: __________________________________________________________________________________ 97 5.2.2 ChangeListener ____________________________________________________________________________ 98 5.2.3 Readonly mit einem EditText _________________________________________________________________ 98

5.3 Button ___________________________________________________________________________ 99

5.3.1 Abfrage: _________________________________________________________________________________ 100 5.3.2 ChangeListener ___________________________________________________________________________ 100 5.3.3 Button Hintergrundfarbe ändern _____________________________________________________________ 100 5.3.4 Button mit Rand (Border) ___________________________________________________________________ 100

5.4 CheckBox ________________________________________________________________________ 102

5.4.1 Abfrage: _________________________________________________________________________________ 103 5.4.2 ChangeListener ___________________________________________________________________________ 103

5.5 RadioButton ______________________________________________________________________ 103

5.5.1 Abfrage: _________________________________________________________________________________ 104 5.5.2 ChangeListener ___________________________________________________________________________ 105

5.6 Switch ___________________________________________________________________________ 106

5.6.1 ChangeListener setzen _____________________________________________________________________ 106 5.6.2 ChangeListener Methode ___________________________________________________________________ 107 5.6.3 Abfrage _________________________________________________________________________________ 107 5.6.4 Zwei Switch als RadioButton einsetzen ________________________________________________________ 107

5.7 Spinner __________________________________________________________________________ 109

5.7.1 Abfrage: _________________________________________________________________________________ 110 5.7.2 ChangeListener ___________________________________________________________________________ 110

6 Menüs (drei Punkte) _____________________________________________________________112 7 Constraint-Layout _______________________________________________________________115 7.1 Attribute ________________________________________________________________________ 115

7.1.1 layout_width _____________________________________________________________________________ 115 7.1.2 layout_height ____________________________________________________________________________ 115

7.2 Konstanten _______________________________________________________________________ 115

7.2.1 Positionskonstanten _______________________________________________________________________ 115

(4)

7.3 Weitere Eigenschaften _____________________________________________________________ 117

7.3.1 Ratio ___________________________________________________________________________________ 117

7.4 Groups __________________________________________________________________________ 118

7.4.1 Barirers _________________________________________________________________________________ 118 7.4.2 Prozent _________________________________________________________________________________ 118 7.4.3 fillparent ________________________________________________________________________________ 119 7.4.4 Tipps ___________________________________________________________________________________ 119 7.4.5 Unterschiedliche Länge der Beschriftungen ____________________________________________________ 121

8 LinearLayout ___________________________________________________________________123 8.1 vertikal __________________________________________________________________________ 123 8.2 horizontal ________________________________________________________________________ 123 8.3 Gravity-Konstanten ________________________________________________________________ 126 8.4 RelativeLayout ____________________________________________________________________ 126

8.4.1 Beispiele: ________________________________________________________________________________ 129

9 TableLayout ___________________________________________________________________130 9.1 Beispiel TableLayout _______________________________________________________________ 130 10 GridLayout ____________________________________________________________________134 11 ListView ______________________________________________________________________138 11.1 Einfaches ListView-Beispiel __________________________________________________________ 139

11.1.1 activity_main.xml _______________________________________________________________________ 139 11.1.2 Darstellung der Zeile ____________________________________________________________________ 140 11.1.3 Java Code _____________________________________________________________________________ 141

11.2 ListView-Beispiel mit Studenten-Adapter ______________________________________________ 143

11.2.1 activity_main.xml _______________________________________________________________________ 143 11.2.2 Strings Konstanten ______________________________________________________________________ 145 11.2.3 Darstellung der Zeile ____________________________________________________________________ 146 11.2.4 Semesterbilder _________________________________________________________________________ 148 11.2.5 Klasse Student _________________________________________________________________________ 148 11.2.6 Quellcode der Klasse Student _____________________________________________________________ 149 11.2.7 StudentenListe _________________________________________________________________________ 150 11.2.8 StudentenAdapter ______________________________________________________________________ 152 11.2.9 Java Code in MainActivity ________________________________________________________________ 154

11.3 ListView Studenten Beispiel Weitere Verfeinerung _______________________________________ 155

11.3.1 Klasse Basis einfügen ____________________________________________________________________ 156 11.3.2 Menü ________________________________________________________________________________ 156 11.3.3 Klick-Events ___________________________________________________________________________ 159 11.3.4 TextViews zum Testen in die neue Activity einfügen ___________________________________________ 161 11.3.5 Aufruf des neuen Views __________________________________________________________________ 164 11.3.6 Parameterübergabe _____________________________________________________________________ 164 11.3.7 EditDeleteNew.java _____________________________________________________________________ 166 11.3.8 Beenden ______________________________________________________________________________ 169 11.3.9 Schalter Cancel _________________________________________________________________________ 170 11.3.10 Schalter Ok für Edit-Action _______________________________________________________________ 170 11.3.11 Abfangen der Rückantwort _______________________________________________________________ 170 11.3.12 Komplettes Layouts der zweiten Acitivty ____________________________________________________ 171 11.3.13 Prüfen der Eingaben ____________________________________________________________________ 176 11.3.14 Schalter Ok in EditDeleteNew.java _________________________________________________________ 177

11.4 Änderungemethoden in der Studentenliste _____________________________________________ 178

11.4.1 Ändern eines Studenten (Studentenliste) ____________________________________________________ 178 11.4.2 Löschen eines Studenten (Studentenliste) ___________________________________________________ 179 11.4.3 Einfügen eines neuen Studenten (Studentenliste) _____________________________________________ 179

11.5 Laden und Speichern (Studentenliste) _________________________________________________ 179

(5)

11.5.1 Laden der Studenten: ___________________________________________________________________ 179 11.5.2 Speichern der Studenten: ________________________________________________________________ 180

11.6 Laden und Speichern eines Studenten (Klasse Student.java) _______________________________ 180

11.6.1 Speichern eines Studenten _______________________________________________________________ 181 11.6.2 Laden eines Studenten __________________________________________________________________ 181

11.7 Umbau des Ladens der Liste _________________________________________________________ 182 11.8 Abfrage des Ergebnisses des zweiten Views ____________________________________________ 182 11.9 Symbole im Optionsmenu ___________________________________________________________ 183 11.10 ListView mit Checkboxen _________________________________________________________ 183

11.10.1 row_layout.xml ________________________________________________________________________ 184 11.10.2 Student.java ___________________________________________________________________________ 185 11.10.3 StudentenAdapter ______________________________________________________________________ 185 11.10.4 Optionsmenü __________________________________________________________________________ 187

12 MultiPages ____________________________________________________________________191 12.1 Bottom Navigation Activity __________________________________________________________ 191

12.1.1 Neues Projekt erstellen __________________________________________________________________ 193 12.1.2 Struktur des Projektes ___________________________________________________________________ 193 12.1.3 Plätze der Fragmente ____________________________________________________________________ 194 12.1.4 bottom_nav_menu.xml __________________________________________________________________ 195 12.1.5 Anlegen eines neuen Fragments ___________________________________________________________ 198 12.1.6 Testlauf _______________________________________________________________________________ 204 12.1.7 Add-Fragment als Start-Fragemnt setzen. ___________________________________________________ 204 12.1.8 Aktueller Stand_________________________________________________________________________ 205 12.1.9 Weitere Symbole _______________________________________________________________________ 205 12.1.10 Icon aus der Androidliste einfügen _________________________________________________________ 206 12.1.11 Texte für die Fragmente _________________________________________________________________ 209 12.1.12 fragment_add aufbauen _________________________________________________________________ 209 12.1.13 Ändern des activity_main-Layout: _________________________________________________________ 211 12.1.14 Quellcode von fragment_add.xml __________________________________________________________ 212 12.1.15 Add-Fragment-Javacode _________________________________________________________________ 215 12.1.16 Klasse Basis.java ________________________________________________________________________ 217 12.1.17 Tastatur entfernen ______________________________________________________________________ 217 12.1.18 MainActivity.java _______________________________________________________________________ 217 12.1.19 AddFragment.java ______________________________________________________________________ 218 12.1.20 Musterlösung __________________________________________________________________________ 219

12.2 Tabbed Activity ___________________________________________________________________ 220

12.2.1 Neues Projekt erstellen __________________________________________________________________ 222 12.2.2 Struktur des Vorlagen-Projektes ___________________________________________________________ 222 12.2.3 Plätze der Fragmente ____________________________________________________________________ 224 12.2.4 strings.xml ____________________________________________________________________________ 224 12.2.5 Anlegen des neuen AddFragment __________________________________________________________ 225 12.2.6 strings.xml ____________________________________________________________________________ 225 12.2.7 Einfügen des AddFragmentes mit dem Menü. ________________________________________________ 225 12.2.8 SectionsPagerAdapter ___________________________________________________________________ 227 12.2.9 Testlauf _______________________________________________________________________________ 228 12.2.10 Eintragen der XML-Daten in fragment_add.xml _______________________________________________ 228 12.2.11 Eintragen des Quellcodes in Addfragment.java _______________________________________________ 231 12.2.12 Klasse Basis.java ________________________________________________________________________ 234 12.2.13 Aktueller Stand_________________________________________________________________________ 234 12.2.14 Löschen der vorgefertigten Fragmente _____________________________________________________ 235 12.2.15 Ändern in SectionsPageAdapter ___________________________________________________________ 235 12.2.16 Erstellen der restlichen Fragmente _________________________________________________________ 236

(6)

12.2.21 MainActivity.java _______________________________________________________________________ 245 12.2.22 AddFragment.java ______________________________________________________________________ 246 12.2.23 Musterlösung __________________________________________________________________________ 247

12.3 Tabbed Activity mit Optionsmenu mit Empty-Activit _____________________________________ 248

12.3.1 Neues Projekt __________________________________________________________________________ 248 12.3.2 Anlegen und Kopieren der Klasse Basis.java __________________________________________________ 248 12.3.3 strings.xml ____________________________________________________________________________ 249 12.3.4 Anlegen der drei Fragmente Add, Sub, Mult _________________________________________________ 249 12.3.5 Ändern der Texte in den Fragmenten: ______________________________________________________ 252 12.3.6 activity_main.xml _______________________________________________________________________ 253 12.3.7 Navigation ____________________________________________________________________________ 253 12.3.8 Testlauf _______________________________________________________________________________ 254 12.3.9 Optionsmenu erstellen __________________________________________________________________ 254 12.3.10 Optionsmenu einfügen in die mainActivity __________________________________________________ 256 12.3.11 Optionsmenu-Start-Event abfangen ________________________________________________________ 257 12.3.12 Optionsmenu-Klick-Event abfangen ________________________________________________________ 257 12.3.13 Navigationscontroller ___________________________________________________________________ 257 12.3.14 Fragment Add _________________________________________________________________________ 258 12.3.15 AddFragment.java ______________________________________________________________________ 261 12.3.16 Fragment Sub __________________________________________________________________________ 263 12.3.17 SubFragment.java ______________________________________________________________________ 266 12.3.18 Fragment Mult _________________________________________________________________________ 268 12.3.19 MultFragment.java _____________________________________________________________________ 271 12.3.20 Abbildung der Musterlösung ______________________________________________________________ 273

12.4 Tabbed Activity mit Optionsmenu mit Bottom-Navigation Vorlage __________________________ 274

12.4.1 Neues Projekt __________________________________________________________________________ 274 12.4.2 strings.xml ____________________________________________________________________________ 275 12.4.3 Anlegen der drei Fragmente Add, Sub, Mult _________________________________________________ 275 12.4.4 Ändern der Texte in den Fragmenten: ______________________________________________________ 277 12.4.5 activity_main.xml _______________________________________________________________________ 278 12.4.6 Kopieren der Symbole oder Einfügen von neuen Symbolen _____________________________________ 279 12.4.7 Navigation ändern bztw. löschen __________________________________________________________ 281 12.4.8 Navigation in MainActivity.java ____________________________________________________________ 283 12.4.9 Testlauf mit und ohne Symbole ___________________________________________________________ 284 12.4.10 Eintragen des Fragments Add _____________________________________________________________ 285 12.4.11 Anlegen und Kopieren der Klasse Basis.java __________________________________________________ 287 12.4.12 AddFragment.java (ohne Packagezeile) _____________________________________________________ 289 12.4.13 Fragment Sub __________________________________________________________________________ 291 12.4.14 SubFragment.java ______________________________________________________________________ 294 12.4.15 Fragment Mult _________________________________________________________________________ 297 12.4.16 MultFragment.java _____________________________________________________________________ 299 12.4.17 Abbildung der Musterlösung ______________________________________________________________ 302

12.5 Swipe-Activity ____________________________________________________________________ 304

12.5.1 Anlegen des Projektes ___________________________________________________________________ 304 12.5.2 activity_main.xml _______________________________________________________________________ 305 12.5.3 Kopieren der Bilder _____________________________________________________________________ 305 12.5.4 Anlegen des Fragments __________________________________________________________________ 305 12.5.5 Ändern der Factory _____________________________________________________________________ 306 12.5.6 SectionsPageAdapter ____________________________________________________________________ 308 12.5.7 fragment_picture.xml ___________________________________________________________________ 309 12.5.8 PictureFragment.java ____________________________________________________________________ 309

12.6 Master Detail Activity ______________________________________________________________ 315

12.7 Eigene Navigation _________________________________________________________________ 316

12.7.1 Musterlösung __________________________________________________________________________ 316 12.7.2 Projekt anlegen ________________________________________________________________________ 317 12.7.3 Vorarbeiten ___________________________________________________________________________ 318 12.7.4 Startbildschirm _________________________________________________________________________ 318 12.7.5 Neue Packages _________________________________________________________________________ 321

(7)

12.7.6 Bottom Navigation Activity _______________________________________________________________ 323 12.7.7 Tabbed Bar Activity _____________________________________________________________________ 324 12.7.8 ListView ______________________________________________________________________________ 328

13 Activity aufrufen________________________________________________________________333 13.1 Neue Activity erstellen, mittels Menü _________________________________________________ 333 14 Optionsmenü __________________________________________________________________336

14.1 Menü erstellen____________________________________________________________________ 336 14.2 Datei menu.xml anlegen ____________________________________________________________ 336 14.3 Menüeinträge erstellen _____________________________________________________________ 337 14.4 Optionsmenu einfügen in die mainActivity _____________________________________________ 338 14.5 Optionsmenu-Start-Event abfangen ___________________________________________________ 339 14.6 Optionsmenu-Klick-Event abfangen ___________________________________________________ 339 15 Einfache Sofort-Dialoge (alert-Dialoge) _____________________________________________340

15.1 Alert-Dialog ok und cancel Schalter ___________________________________________________ 340 15.2 Alert-Dialog yes und no Schalter ______________________________________________________ 341 15.3 Alert-Dialog no und yes Schalter ______________________________________________________ 342 15.4 Alert-Dialog yes,no und cancel Schalter ________________________________________________ 343 15.5 Alert-Dialog mit der Auswahl aus einer Liste ____________________________________________ 345 15.6 Alert-Dialog mit eigenem Layout _____________________________________________________ 346 16 Speichern mittels DataOutputStream und DataInputStream ____________________________350

16.1 DataOutputStream ________________________________________________________________ 350

16.1.1 Pures Java _____________________________________________________________________________ 350 16.1.2 DataOutputStream in Android ____________________________________________________________ 350 16.1.3 Methoden der Klasse DataOutputStream____________________________________________________ 351

16.2 DataInputStream __________________________________________________________________ 351

16.2.1 Pures Java _____________________________________________________________________________ 352 16.2.2 DataInputStream in Android ______________________________________________________________ 352 16.2.3 Methoden der Klasse DataInputStream _____________________________________________________ 353

16.3 Beispiele _________________________________________________________________________ 353

16.3.1 Speichern und laden einer Instanz einer Klasse _______________________________________________ 353 16.3.2 Speichern und laden von mehreren Instanzen einer Klasse _____________________________________ 355

17 Die Datenbank SQLite ___________________________________________________________359 17.1 SQLite ___________________________________________________________________________ 359

17.1.1 Eigenschaften __________________________________________________________________________ 359 17.1.2 Datentypen ___________________________________________________________________________ 359 17.1.3 Gemappte Datentypen __________________________________________________________________ 359 17.1.4 Aufbau in Android ______________________________________________________________________ 360 17.1.5 Datenbank erzeugen ____________________________________________________________________ 361 17.1.6 Insert ________________________________________________________________________________ 362 17.1.7 getQuery _____________________________________________________________________________ 363 17.1.8 Löschen der Datenbank __________________________________________________________________ 364

17.2 Beispiel einer einfachen SQLite-App ___________________________________________________ 364

17.2.1 Anlegen eines Projektes _________________________________________________________________ 365

(8)

17.2.6 DBSOpenHandler.java ___________________________________________________________________ 369 17.2.7 DBSQueries____________________________________________________________________________ 371 17.2.8 Basis.java _____________________________________________________________________________ 374 17.2.9 MainActivity ___________________________________________________________________________ 374 17.2.10 ShowStudentsActivity1 __________________________________________________________________ 376 17.2.11 ShowStudentsActivity2 __________________________________________________________________ 380

18 ListView und die Studentendatenbank ______________________________________________385 18.1 Einfügen der Klasse DBSOpenHandler _________________________________________________ 385 18.2 Klasse Student ____________________________________________________________________ 386 18.3 DBSQueries ______________________________________________________________________ 387 18.4 MyCursorAdapter _________________________________________________________________ 389 18.5 MainActivity ______________________________________________________________________ 390 18.6 EditDeleteNewActivity _____________________________________________________________ 393 19 Sensoren ______________________________________________________________________398

19.1 Sensor-Typen _____________________________________________________________________ 398 19.2 Allgemeiner Aufbau ________________________________________________________________ 398 19.3 Beispiele der Sensoren _____________________________________________________________ 399

19.3.1 Accelerator (Beschleunigung ) ____________________________________________________________ 399 19.3.2 Temperatur ___________________________________________________________________________ 400 19.3.3 Gravity (Schwerkraft) ____________________________________________________________________ 400 19.3.4 Gyroskope (Lade, zum Beispiel für Spiele) ___________________________________________________ 401 19.3.5 Magnetfeld (für Kompass) ________________________________________________________________ 402 19.3.6 Luftdruck (Pressure) _____________________________________________________________________ 403 19.3.7 Luftfeuchtigkeit (Humidity) _______________________________________________________________ 404 19.3.8 Licht (Light) ____________________________________________________________________________ 405

19.4 Alle Sensoren _____________________________________________________________________ 407

19.4.1 String.xml _____________________________________________________________________________ 407 19.4.2 Color.xml _____________________________________________________________________________ 407 19.4.3 activity_main.xml _______________________________________________________________________ 408 19.4.4 Klasse SensorItem.java __________________________________________________________________ 410 19.4.5 MainActivity.java _______________________________________________________________________ 410

20 Chronometer __________________________________________________________________417 20.1 Projekt-Erstellung _________________________________________________________________ 417 20.2 colors.xml ________________________________________________________________________ 417 20.3 strings.xml _______________________________________________________________________ 418 20.4 Layout: __________________________________________________________________________ 418 20.5 MainActivity.java __________________________________________________________________ 421 21 Grafik ________________________________________________________________________423

21.1 Minimale Grafik ___________________________________________________________________ 423

21.1.1 activity_main.xml _______________________________________________________________________ 424 21.1.2 Klasse Graphic _________________________________________________________________________ 424 21.1.3 drawPaint-Methoden: ___________________________________________________________________ 426 21.1.4 Grafik-Methoden: ______________________________________________________________________ 427 21.1.5 Querformat ___________________________________________________________________________ 427 21.1.6 MainActivity.java _______________________________________________________________________ 428 21.1.7 colors.xml _____________________________________________________________________________ 428

21.2 XYGrafik _________________________________________________________________________ 428

21.2.1 activity_main.xml _______________________________________________________________________ 429

(9)

21.2.2 Querformat ___________________________________________________________________________ 429 21.2.3 menu-xml _____________________________________________________________________________ 430 21.2.4 colors.xml _____________________________________________________________________________ 430 21.2.5 strings.xml ____________________________________________________________________________ 431 21.2.6 Übersicht über die Klasse XYGraphic _______________________________________________________ 431 21.2.7 Klasse XYGraphic _______________________________________________________________________ 436 21.2.8 MainActivity.java _______________________________________________________________________ 453 21.2.9 MainActivity.java _______________________________________________________________________ 457 21.2.10 Beispielbilder __________________________________________________________________________ 463

22 Portrait und Landscape erkennen (Querformat) ______________________________________468 22.1 Quellcode Portrait und Landscape ____________________________________________________ 468 22.2 Grafikbeispiel _____________________________________________________________________ 469 22.3 Normales Layout __________________________________________________________________ 470

22.3.1 Vorgaben _____________________________________________________________________________ 471

22.4 Anlegen einer Portrait-Activity _______________________________________________________ 474

22.4.1 activity_portrait.xml ____________________________________________________________________ 474 22.4.2 ActivityPortrait.java _____________________________________________________________________ 476

22.5 Landscape-Variante ________________________________________________________________ 478

22.5.1 Quellcode _____________________________________________________________________________ 478 22.5.2 Umbau zur Landscape-Activity ____________________________________________________________ 478

23 Anhang _______________________________________________________________________481

23.1 toast ____________________________________________________________________________ 481

23.2 decimalFormat ____________________________________________________________________ 481

23.3 Umwandlung eines Textes in eine Integer-Zahl __________________________________________ 481

23.4 Umwandlung eines Textes in eine Float-Zahl ____________________________________________ 482

23.5 Random-Zahl erzeugen _____________________________________________________________ 483

23.6 ListView, Update __________________________________________________________________ 483

23.7 Constraint-Layout, zwei Editoren untereinander _________________________________________ 484

23.8 Klasse Basis.java __________________________________________________________________ 485

23.9 onClick, Code Behind _______________________________________________________________ 486

23.10 Runde Button __________________________________________________________________ 487

23.10.1 Version 1 _____________________________________________________________________________ 487 23.10.2 Version 3 _____________________________________________________________________________ 487 23.10.3 Version 3 _____________________________________________________________________________ 488 23.10.4 Version 4 _____________________________________________________________________________ 489

23.11 Erstellen eines „Plus“-Icons _______________________________________________________ 490

23.12 Beispiel Symbole ________________________________________________________________ 492

24 Stichwortverzeichnis ____________________________________________________________497

(10)

1 Abbildungsverzeichnis

Abbildung 1 Begrüßungsdialog ... 15

Abbildung 2 Bitte mit der Virtualisierung ... 16

Abbildung 3 Installationsordner (Meine Wahl: c:\Android Studio) ... 16

Abbildung 4 Eintrag im Startmenü ... 16

Abbildung 5 Entzippen des Installationsprogramms ... 17

Abbildung 6 Die Installation wurde entzippt ... 17

Abbildung 7 Der erste Teile, der schnellere, ist beendet. ... 17

Abbildung 8 Import von vorherigen Versionen )optional) ... 18

Abbildung 9 Download des SDK ... 18

Abbildung 10 Warten vor denm langen Download ... 18

Abbildung 11 Hier Custom auswählen ... 19

Abbildung 12 Bessere Wahl ... 19

Abbildung 13 Java Runtime Edition Ordner (ja nach Pfad anders) ... 19

Abbildung 14 Farbwahl ... 20

Abbildung 15 Bitte unbedingt beide Haken setzen ... 20

Abbildung 16 Wer nicht mindestens 16 Hauptspeicher hat, unbedingt nichts ändern ... 20

Abbildung 17 Liste der Downloads ... 21

Abbildung 18 Jetzt geht der zweite Teil richtig los! ... 21

Abbildung 19 Laden der Zusatzdateien ... 21

Abbildung 20 Immer noch runterladen ... 22

Abbildung 21 Immer noch runterladen ... 22

Abbildung 22 Startdialog ... 23

Abbildung 23 Android Startfenster ... 23

Abbildung 24 Auswahl "Empty Activity" ... 24

Abbildung 25 Eigenschaften des neuen Projektes ... 24

Abbildung 26 Neues Projekt im Android Studio ... 25

Abbildung 27 Aufruf SDK Manager ... 26

Abbildung 28 SDK erstellen (Auswahl der Komponenten) ... 26

Abbildung 29 SDK Verzeichnis erstellen ... 27

Abbildung 30 Runterladen von Komponenten ... 27

Abbildung 31 SDK ist nun installiert ... 28

Abbildung 32 Aufruf SDK Manager ... 29

Abbildung 33 Erstellen einer virtuellen Maschine ... 29

Abbildung 34 Auswahl des Smartphones ... 30

Abbildung 35 Nun ein weiterer Download ... 31

Abbildung 36 Lizenz Bedingungen ... 32

Abbildung 37 Endlich fertig ... 32

Abbildung 38 Anzeige aller virtuellen Maschinen ... 33

Abbildung 39 Eigenschaften der virtuellen Madschine ... 33

Abbildung 40 Abschlussdialog ... 34

Abbildung 41 Die eventuelle Sicherheitsabfrage bejahen ... 35

Abbildung 42 Neue Projekt ... 54

Abbildung 43 Daten des ersten Projektes ... 55

Abbildung 44 Das erste Rumpfprojekt ... 55

Abbildung 45 UI-View im Textmodus ... 56

Abbildung 46 UI-View im Grafikmodus ... 57

Abbildung 47 UI-View im Textmodus / Grafikmodus ... 57

Abbildung 48 Constrainst des ersten TextViews ... 58

Abbildung 49 Anzeige des ersten Beispiels ... 59

Abbildung 50 Constrainst des ersten PlainText-Elemenmtes ... 60

(11)

Abbildung 51 Constrainst des Schalters ... 61

Abbildung 52 Constrainst des ersten PlainText-Elemenmtes ... 63

Abbildung 53 Textcolor ändern ... 63

Abbildung 54 Textsize ändern ... 63

Abbildung 55 Das User-Interface des ersten Beispiels ... 64

Abbildung 56 Anlegen des zweiten Beispiels Bsp02 ... 68

Abbildung 57 Constrainst der CheckBox ... 69

Abbildung 58 Constrainst der RadioGroup ... 70

Abbildung 59 Constrainst des Switch ... 70

Abbildung 60 Switch-Aussehen ... 70

Abbildung 61 Constrainst der Überschrift ... 77

Abbildung 62 Constrainst derersten Beschriftung ... 78

Abbildung 63 Constrainst der 1. Zahl ... 78

Abbildung 64 Constrainst zweiten Beschriftung ... 78

Abbildung 65 Constrainst der 2. Zahl ... 79

Abbildung 66 Erster Stand des dritten Beispiels ... 79

Abbildung 67 Constrainst der dritten Beschriftung ... 80

Abbildung 68 Musterlösung ... 87

Abbildung 69 Berechnung nach der Berechnung Europa ... 88

Abbildung 70 Berechnung nach der Berechnung USA ... 89

Abbildung 71 Neue XML-Date für Border anlegen ... 101

Abbildung 72 Button mit rotem Rand ... 102

Abbildung 73 Alternatives Aussehen eines Buttons... 102

Abbildung 74 5.6.4 Zwei Switch als RadioButton einsetzen ... 107

Abbildung 75 Anlegen einer Menüdatei ... 112

Abbildung 76 Aktueller Strukturbaum des Projektes ... 113

Abbildung 77 Anzeige eines Menüs ... 113

Abbildung 78 Menü New und Delete ... 114

Abbildung 79 Menü for das Anzeigen der Baseline ... 120

Abbildung 80 Anzeige der Baseline ... 120

Abbildung 81 Verknüpfen der beiden Baseline ... 120

Abbildung 82 Gleiche Länge von Beschriftungen ... 121

Abbildung 83 Unterschiedliche Länge von Beschriftungen ... 122

Abbildung 84 Überblick eines Adapters ... 138

Abbildung 85 Anlegen der Datei simplerow.xml ... 140

Abbildung 86 Einfache ListView mit einem ArrayAdapter ... 142

Abbildung 87 ListView StudentenListe ... 144

Abbildung 88 ListView, View zum Bearbeiten ... 144

Abbildung 89 Struktur des Beispiels ListView mit Studenten ... 145

Abbildung 90 Anlegen der Datei row_layout.xml ... 146

Abbildung 91 Aktuelle Struktur des Projektes ... 148

Abbildung 92 Klasse Student ... 149

Abbildung 93 Klasse Studentenliste ... 151

Abbildung 94 Neue Klasse StudnetenAdapter ... 152

Abbildung 95 Erste Fassung der ListView mit Studenten ... 155

Abbildung 96 Klasse Basis.java ... 156

Abbildung 97 Anlegen einer Menüdatei ... 157

Abbildung 98 Aktueller Strukturbaum des Projektes ... 157

Abbildung 99 Anzeige eines Menüs ... 158

Abbildung 100 Menü New ... 158

(12)

Abbildung 105 Startanzeige mit Anklicken eines Eintrags ... 169

Abbildung 106 Anzeige der Details ... 169

Abbildung 107 Aktueller Stand der Studenten-ListView ... 175

Abbildung 108 Auswahl des Semesters ... 176

Abbildung 109 Auswahl der Note ... 176

Abbildung 110 ListView im Selected-Modus ... 184

Abbildung 111 Ansicht des Vorlagen-Projektes (BottomNavigation) ... 191

Abbildung 112 Fertiges Projekt ... 191

Abbildung 113 Komplette Struktur der Musterlösung ... 192

Abbildung 114 Bottom Navigation Activity ... 193

Abbildung 115 Eintrag "ui" aktivieren ... 198

Abbildung 116 Neues Package erstellen ... 198

Abbildung 117 Neues Package "add" erstellen ... 198

Abbildung 118 Das neue Package "add" wird eingetragen ... 199

Abbildung 119 Einfügen eines neuen Fragmentes ... 200

Abbildung 120 Dialog zum Eintragen des Namens des neuen Fragments ... 200

Abbildung 121 Eintragen des Namens des neuen Fragments ... 201

Abbildung 122 ViewModel Auswahl für ein neues Fragment ... 201

Abbildung 123 Aktueller Stand des Bottom-Navigation-Beispiels (mit Add-Fragment) ... 205

Abbildung 124 Auswahl des Menueintrags „drawable Symbol“ ... 207

Abbildung 125 Auswahldes neuen Vektore-Symbols ... 208

Abbildung 126 Auswahl des Plus-Symbols... 208

Abbildung 127 Framelayout umwandeln in ein Constraint-Layout ... 210

Abbildung 128 Popupmenu zum Umwandeln ins Constraint-Layout ... 210

Abbildung 129 Änderungsmeldung bezüglich des Constraint-Layout... 210

Abbildung 130 actionBarSize ... 211

Abbildung 131 Bottom-Navigation ohne ActionBar-Padding ... 212

Abbildung 132 Struktur der fragment-add-xml-Datei ... 215

Abbildung 133 Anzeige der Meldung bei korrekter Lösung ... 219

Abbildung 134 Anzeige der Meldung bei falscher Lösung ... 219

Abbildung 135 Ansicht des Vorlagen-Projektes (leicht verändert) ... 220

Abbildung 136 Fertiges Projekt ... 220

Abbildung 137 Komplette Struktur der Musterlösung ... 221

Abbildung 138 Bottom Navigation Activity ... 222

Abbildung 139 Vorlagenstruktur des Tabbed Projektes ... 223

Abbildung 140 Einfügen eines neuen Fragments ... 225

Abbildung 141 Dialog zum Eintragen des Namens des neuen Fragments ... 226

Abbildung 142 Eintragen des Namens des neuen Fragments ... 226

Abbildung 143 ViewModel Auswahl für ein neues Fragment ... 226

Abbildung 144 Aktueller Stand des TabbedBar-Beispiels (mit Add-Fragment) ... 234

Abbildung 145 Anzeige der Meldung bei korrekter Lösung ... 247

Abbildung 146 Anzeige der Meldung bei falscher Lösung ... 247

Abbildung 147 Anlegen des Ordners navigation im Eintrag "res" ... 253

Abbildung 148 Anlegen eines Ordners "menu"... 255

Abbildung 149 Erstellen der xml-Datei "menu.xml" ... 255

Abbildung 150 AddSubMult in Optionsmenu ... 273

Abbildung 151 AddSubMult in Optionsmenu ... 273

Abbildung 152 Vector Asset ... 279

Abbildung 153 Symbole in Vector Asset ... 280

Abbildung 154 Symbol add ausgewählt ... 280

Abbildung 155 Symbol "ic_round_add_box_24" ... 281

Abbildung 156 AddSubMult in Optionsmenu ... 303

Abbildung 157 AddSubMult in Optionsmenu ... 303

Abbildung 158 Auswahl einer Tabbed Activity ... 304

(13)

Abbildung 159 Name der Tabbed Activity: SwipeTabbedActivity ... 304

Abbildung 160 Anlegen eines Pictures-Fragment ... 306

Abbildung 161 Fragment mit Factory ... 306

Abbildung 162 Anzeige der Swipe-Musterlösung ... 314

Abbildung 163 Startbildschirm ... 316

Abbildung 164 Vorspeisen ... 316

Abbildung 165 Hauptspeise ... 316

Abbildung 166 Nachspeise ... 316

Abbildung 167 Projekttyp "Empty Activity" ... 317

Abbildung 168 Projektname BspMyNavigation ... 317

Abbildung 169 Anzeige der drei neuen Packages ... 321

Abbildung 170 Neues Package ... 322

Abbildung 171 Eingabe des Namens des neuen Package ... 322

Abbildung 172 Eingabe des Namens "vorspeisen" ... 322

Abbildung 173 Eintragen der Bottom-Navigation ... 323

Abbildung 174 Einfügen der Activity VorspeisenActivity ... 323

Abbildung 175 Eintragen der Tabbed Activity ... 325

Abbildung 176 Einfügen der Activity VorspeisenActivity ... 325

Abbildung 177 PizzaFragment erstellen ... 326

Abbildung 178 ZucchiniFragment erstellen ... 327

Abbildung 179 Eintragen der Empty Activity ... 329

Abbildung 180 Einfügen der Activity NachspeisenActivity ... 329

Abbildung 181 PizzaFragment erstellen ... 330

Abbildung 182 Erstellen einer neuen Activity ... 333

Abbildung 183 Eingabe des Namens für die neue Activity ... 334

Abbildung 184 Anlegen eines Ordners "menu"... 336

Abbildung 185 Erstellen der xml-Datei "menu.xml" ... 336

Abbildung 186 Beispiel für Symbole des Optionsmenus ... 337

Abbildung 187 Neues Symbol im Optionsmenu ... 338

Abbildung 188 Anzeige der Einträge im Optionsmenu (mit Symbolen) ... 338

Abbildung 189 Alert-Dialog (ok, cancel) ... 341

Abbildung 190 Alert-Dialog (yes,no) ... 342

Abbildung 191 Alert-Dialog (no, yes) ... 343

Abbildung 192 Alert-Dialog (yes,no,cancel) ... 344

Abbildung 193 Alert-Dialog mit RadioButtonliste ... 346

Abbildung 194 Grafische Ansicht des Layouts ... 348

Abbildung 195 Alert-Dialog mit RadioButtonliste ... 349

Abbildung 196 Übersicht über SQLIte in Android ... 361

Abbildung 197 Löschen der Daten eines Simulators ... 364

Abbildung 198 Struktur des ersten SQLite-Beispiels ... 365

Abbildung 199 Musterlösung des ersten SQLIte-Beispiels ... 365

Abbildung 200 row_layout für die Datenbank-Anzeige ... 377

Abbildung 201 LiustView mit einem SimpleCursorAdapter ... 379

Abbildung 202 row_layout für die Datenbank-Anzeige ... 380

Abbildung 203 Start des Projektes "Alle Sensoren" ... 407

Abbildung 204 Sonsor Magnetfeld + Accelerator ... 407

Abbildung 205 Musterlösung einer Stoppuhr und eines Counddown-Zählers ... 417

Abbildung 206 Layout des Chronometers ... 418

Abbildung 207 Anzeige der minimalen Grafik ... 423

Abbildung 208 Text mit Style Stroke ... 426

(14)

Abbildung 213 3. Beispiel mit der XY-Grafik ... 464

Abbildung 214 4. Beispiel mit der XY-Grafik ... 464

Abbildung 215 5. Beispiel mit der XY-Grafik (VBalken) ... 465

Abbildung 216 6. Beispiel mit der XY-Grafik (Timer) ... 465

Abbildung 217 6. Beispiel mit der XY-Grafik (Timer) ... 466

Abbildung 218 Startfenster ... 471

Abbildung 219 Portrait-Activity ... 471

Abbildung 220 Runder Button ... 487

Abbildung 221 Runder Button ... 488

Abbildung 222 Runder Button ... 488

Abbildung 223 Runder Button ... 489

Abbildung 224 Auswahl des Menueintrags „drawable Symbol“ ... 490

Abbildung 225 Auswahldes neuen Vektore-Symbols ... 491

Abbildung 226 Auswahl des Plus-Symbols... 491

(15)

2 Android

Dieses Kaptels zeigt die beiden Installationsprozeduren und die Prozedure des „Nachladens“. Android wird während des Arbeitens immer mal wieder neue Dateien laden.

Hinweis:

Der Rechner sollte ein 64-Bit-System sein und mindestens 8 GB Hauptspeicher haben.

2.1 Installation

Die Installation verläuft in fünf Schritten:

 Download der Exe-Datei bzw. dgm-Datei

 Erste Installation

 Aufruf und laden weiterer Dateien

 Runterladen des SDK

 Runterladen der virtuellen Maschine

2.1.1 Erste Installation

Abbildung 1 Begrüßungsdialog

(16)

Abbildung 2 Bitte mit der Virtualisierung

Abbildung 3 Installationsordner (Meine Wahl: c:\Android Studio)

Abbildung 4 Eintrag im Startmenü

(17)

Abbildung 5 Entzippen des Installationsprogramms

Abbildung 6 Die Installation wurde entzippt

(18)

2.1.2 Zweite Installation Nun starten des Android Studios:

Im zweiten Teile werden die SDK, Emulatoren etc. geladen.

Abbildung 8 Import von vorherigen Versionen )optional)

Abbildung 9 Download des SDK

Abbildung 10 Warten vor denm langen Download

(19)

Abbildung 11 Hier Custom auswählen

Abbildung 12 Bessere Wahl

(20)

Abbildung 14 Farbwahl

Abbildung 15 Bitte unbedingt beide Haken setzen

Abbildung 16 Wer nicht mindestens 16 Hauptspeicher hat, unbedingt nichts ändern

(21)

Abbildung 17 Liste der Downloads

Abbildung 18 Jetzt geht der zweite Teil richtig los!

Dauer der letzten Teile der Installation: ca. 30 bis 60 Minuten

(22)

Abbildung 20 Immer noch runterladen

Abbildung 21 Immer noch runterladen

(23)

Abbildung 22 Startdialog

Nun ein neues Projekt anlegen. Danach muss das SDK und mindestens eine virtuelle Maschine angelegt werden.

2.2 Erstellen eines neuen Projektes

a) Aufruf des Androis Studios

Abbildung 23 Android Startfenster

b) Schalter „Start anew Android Studio project“ anklicken

(24)

Abbildung 24 Auswahl "Empty Activity"

Abbildung 25 Eigenschaften des neuen Projektes

Einträge:

 Name TestSDK

 Save location D:\progs\Android\TestSDK o Bitte erstellen einen Ordner für Ihre Projekte

 Language Java

 Minimum SDK API 22 Android 5.1

(25)

Abbildung 26 Neues Projekt im Android Studio

2.3 SDK-Installation

Zwei Varianten:

 SDK durch das Android-Studio runterladen

 SDK durch einen Link runterladen

2.3.1 • SDK durch das Android-Studio runterladen Menü Tools

Eintrag SDK Manager

(26)

Abbildung 27 Aufruf SDK Manager

Nun Anklicken des Android SDK 10.0, so dass die Teilkomponenten sichtbar werden. Das komplette SDK ist mit dem Quellcode zu groß.

Abbildung 28 SDK erstellen (Auswahl der Komponenten)

Nun den Schalter „Edit“ für den Ordner des SDK betätigen.

(27)

Abbildung 29 SDK Verzeichnis erstellen

Mit dem Schalter „Next“ wird das SDK runtergeladen. Das dauert ca. 30 Minuten.

Abbildung 30 Runterladen von Komponenten

(28)

Abbildung 31 SDK ist nun installiert

Mit dem Schalter „ok“ den Dialog beenden.

2.3.2 • SDK durch einen Link runterladen

Link: https://www.miwilhelm.de/scripte/android/Android-SDK.zip Menü Tools

Eintrag SDK Manager

(29)

Abbildung 32 Aufruf SDK Manager

Nun den Schalter „edit“ anklicken und den ordner auswählen.

2.4 Virtuelle Maschine (AVD-Manager)

Menü Tools,

Eintrag AVD-Manager

Abbildung 33 Erstellen einer virtuellen Maschine

(30)

Abbildung 34 Auswahl des Smartphones

Bitte wählen Sie nicht ein Smartphone aus, welches eine zu hohe Auflösung hat. Die Anzeige des

„Smartphone“ muss ja auch auf Ihrem Bildschirm passen.

(31)

Abbildung 35 Nun ein weiterer Download

(32)

Abbildung 36 Lizenz Bedingungen

Abbildung 37 Endlich fertig

(33)

Abbildung 38 Anzeige aller virtuellen Maschinen

(34)

Abbildung 40 Abschlussdialog

Nun starten des Projektes mit

 Menu Run, Eintrag Run 'App'

 oder

 Shift F10

Ergebnis:

(35)

Abbildung 41 Die eventuelle Sicherheitsabfrage bejahen

(36)

3 Bilder der Projekte

3.1 Spritverbrauch

Bild Bemerkung

Einfacher Rechner

Speichern der Daten mit DataOutputStream

Laden der Daten mit DataInputStream

(37)

3.2 BottomBar Add/Sub/Mult

Bild Bemerkung

BottomBar-Navigation

Arbeitet mit Fragmenten

(38)

3.3 TabbedBar Add/Sub/Mult

Bild Bemerkung

TabbedBar-Navigation

Arbeitet mit Fragmenten

(39)

3.4 Add/Sub/Mult mit Optionsmenu

Bild Bemerkung

Navigation mit Optionsmenu

Arbeitet mit Fragmenten

(40)

3.5 Swipe-Activity

Bild Bemerkung

Benutzt ein TabbedBar

Navigation mit Swipe (links und rechts)

Arbeitet mit Fragmenten

(41)

3.6 MyNavigation

Es gibt eine Einstiegsactivity, welches zu drei verschiedenen Activities verzweigt:

Bild Bemerkung

Startseite mit Schaltern Vorspeise:

- BottomNavigation Hauptspeise:

- TabbedBarNavigation Nachspeise:

- ListView

(42)

3.7 Einfache ListView

Bild Bemerkung

Benutzt ein Array als Quelle

Als Adapter zur ListView wird ein ArrayAdapter

verwendet

(43)

3.8 ListView mit Studenten Datenbank (DataOutputStream)

 Speichern und Laden der Daten mit DataOutputStream und DataInputStream

 Als Adapter zur ListView wird ein BaseAdapter verwendet. Die vier Methoden werden manuell implementiert.

 Es benutzt ein eigenständiges Row-Layout.

 Es hat einen long-ClickEvent.

 Es hat einen short-ClickEvent.

 Eintragen eines neuen Studierenden mittel Optionmenu

Bild Bild

(44)

3.9 ListView mit CheckBoxen

 Kein Speichern und Laden.

 Als Adapter zur ListView wird ein BaseAdapter verwendet. Die vier Methoden werden manuell implementiert.

 Die Markierungen werden über das Optionsmenu geregelt.

 Es benutzt ein eigenständiges Row-Layout.

 Es hat einen long-ClickEvent.

 Es hat einen short-ClickEvent.

 Eintragen eines neuen Studierenden mittels Optionmenu

Bild Bemerkung

(45)

3.10 SQLite (Einstieg)

 Speichern und Laden der Daten mit einer SQLite Datenbank

 Anzeigen:

o Editor

o Einfache ListView

o ListView mit Row-Layout

Bild Bemerkung

(46)

3.11 ListView mit Studenten Datenbank (SQLite)

 Speichern und Laden der Daten mit DataOutputStream und DataInputStream

 Als Adapter zur ListView wird ein CursorAdapter verwendet. Die vier Methoden werden manuell implementiert.

 Dummydaten können über das Optionsmenü eingetragen werden.

 Es benutzt ein eigenständiges Row-Layout.

 Es hat einen long-ClickEvent.

 Es hat einen short-ClickEvent.

 Eintragen eines neuen Studierenden mittel Optionmenu

Bild Bild

(47)

3.12 Chronometer

 StoppUhr

 CountDown

Bild Bild

(48)

3.13 AlleSensoren

 Der Typ des Sensors wird über einen Spinner ausgewählt

Bild Bild

(49)

3.14 XYGrafik

 Die XY-Grafik ist in einer Datei gespeichert.

 Man braucht nur ein LinearLayout, um die Grafik zu implementieren.

 Jetzt auch mit vertikalen Balken.

(50)
(51)

Mit Timer realisiert

(52)

4 Erste einfache Beispiele

4.1 Wichtige Grundeigenschaften von UI-Elementen

Grundeigenschaften

id

o Die id wird zur Verknüpfung mit dem Java-Code und in den XML-Dateien benötigt.

o Beispiel:

 @+id/textview1

 @+id/nachname

 @+id/bnOkay

layout_width

o Die Breite kann entweder einen festen Wert haben, wrap_content oder match_parent beinhalten.

o Fester Wert: 120sp, 12dp, 12px o Breite über eine id: @+id/tinput

o wrap_content zeigt an, dass die Breite so gesetzt wird, dass der komplette Inhalt zu sehen ist.

o match_parent zeigt an, dass nur die Breite komplett über die „Zeile“ geht (abzüglich der beiden Ränder). Die Breite richtet sich auch nach der Schriftgröße.

 layout_height match_parent / wrap_content / @id/

o Die Höhe kann entweder einen festen Wert haben, wrap_content oder match_parent beinhalten.

o Fester Wert: 24sp

o Höhe über eineid: @+id/tinput

o wrap_content zeigt an, dass die Höhe so gesetzt wird, dass der komplette Inhalt zu sehen ist.

o match_parent zeigt an, dass nur die Höhe komplett über die „Zeile“ geht (abzüglich der beiden Ränder). Die Höhe richtet sich auch nach der Schriftgröße.

 layout_marginStart o Linker Rand

 layout_marginEnd o Rechter Rand

 layout_marginTop o Oberer Rand

 layout_marginBottom

o Unterer Rand (sinvoll nur wenn die Höhe „match_parent“ ist).

 gravity

TextView (zusätzliche Eigenschaften)

 text

 textAlignment ="viewStart"

 textSize 36sp

 textColor

EditText (zusätzliche Eigenschaften):

 text

 textAlignment viewStart

 textSize 36sp

 textColor

(53)

 inputType

 lines

 minlines

 maxlines

 lineSpaceExtra none, 8sp Wichtige inputType:

 text

 textMultiLine

 textPersonName

 number

 numberSigned

 numberDecimal

Button:

 id

 layout_width match_parent / wrap_content / @+id/tinput

 layout_height match_parent / wrap_content / @+id/tinput

 text

 textAlignment ="viewStart"

 textSize 36sp

 textColor @android:color/holo_green_light Einheit Beschreibung

dp Die Einheit dp (ehemals auch als dip bezeichnet) repräsentiert eine abstrakte Einheit, die je nach Pixeldichte (dpi) variiert und eine Basispixeldichte von 160dpi besitzt.

Dies bedeutet, dass 1dp auf einem 160dpi Bildschirm letztlich einen Pixel darstellt, dagegen auf einem 320dpi Bildschirm 2px Platz beansprucht.

Die Einheit skaliert somit gemäß der Pixeldichte und sorgt dafür, dass beispielsweise GUI-Komponenten wie einen Button, optisch für den Benutzer immer gleich groß sind(=Smartphones wie Tablets) Eine Linie, die mit einer Breite von 2dp angegeben wird, beansprucht auf einem 160dpi Bildschirm 2px in der Breite, dagegen auf einem 240dpi Bildschirm drei (pysikalische" Pixel), sowie auf einem 320dpi Bildschirm 4 Pixel.

sp Die Einheit sp verhält sich analog der Einheit dp mit nur einem Unterschied: Die Einheit berücksichtigt zudem die vom Benutzer gewünschte und systemweite Schriftgröße.

Demzufolge wird diese Einheit ausschließlich im Umgang mit Schriftgrößen eingesetzt um somit sowohl die Pixeldichte des Displays zu berücksichtigen, als auch die

Benutzereinstellung hinsichtlich gewünschter Schriftgröße zu berücksichtigen.

px Diese Einheit repräsentiert einen physikalischen Pixel auf dem Display des Benutzers.

Eine Linie, die mit einer Breite von 2px angegeben wird, beansprucht somit

unabhängig vom Geräte-Typ, sowohl auf einem Smartphone 2px in der Breite, als auch

auf einem Tablet.

(54)

4.2 Erstes Beispiel

Dieses Beispiel zeigt die Gestaltung der UI-Elemente im View-Editor und im Texteditor und die Verknüpfung mit dem Java-Code inklusive eines ActionsEvents.

4.2.1 UI-Prinzip

Die UI-Elemente werden nacheinander in den UI-View eingetragen. Die Constrainst definieren, wie die Elemente untereinander sich positionieren.

4.2.2 Erstellen eines Projektes Erstellen eines neuen Projektes:

 Menü File

 Eintrag New

 Eintrag New Projekt

 Auswahl eines „Empty Activity“

Abbildung 42 Neue Projekt

Nun eintragen:

 Name bsp01

 Automatisach sollte der Ordner gesetzt: D:\progs\Android\2020\Bsp01

 Language Java

 Minimum SDK API 25

(55)

Abbildung 43 Daten des ersten Projektes

Abbildung 44 Das erste Rumpfprojekt

Auf der linken Seite ist der Projektbaum mit den wichtigsten Elementen zu sehen:

 java

o MainActivity

 Hier ist der Java-Quellcode gespeichert.

 res Speichert die Resourcen (XML, Strings, Farbe, Bilder) o layout

 activity_main.xml

(56)

4.2.3 UI-View

Der UI-View hat drei Anzeigevariante:

 Text

 Grafik

 Text und Grafik

Abbildung 45 UI-View im Textmodus

(57)

Abbildung 46 UI-View im Grafikmodus

Abbildung 47 UI-View im Textmodus / Grafikmodus

Schalter:

AutoConnect der Constrainst

Löschen aller Constrainst

Abbildung

Abbildung 3  Installationsordner (Meine Wahl: c:\Android Studio)
Abbildung 5  Entzippen des Installationsprogramms
Abbildung 15  Bitte unbedingt beide Haken setzen
Abbildung 26  Neues Projekt im Android Studio
+7

Referenzen

ÄHNLICHE DOKUMENTE

Das populäre Betriebsystem für Smartphones und Tablets ist offen und jeder kann sich an der Entwicklung

Das populäre Betriebsystem für Smartphones und Tablets ist offen und jeder kann sich an der Entwicklung

Das populäre Betriebsystem für Smartphones und Tablets ist offen und jeder kann sich an der Entwicklung

Das populäre Betriebsystem für Smartphones und Tablets ist offen und jeder kann sich an der Entwicklung

Das populäre Betriebsystem für Smartphones und Tablets ist offen und jeder kann sich an der Entwicklung

Das populäre Betriebsystem für Smartphones und Tablets ist offen und jeder kann sich an der Entwicklung

Bei einem erfolgreichen Sendevorgang erscheint gegebenenfalls die Abfrage (einstellbar unter Hauptmenü  Einstellungen  Transfer  Export ), ob alle erfassten

Sofern eine Kommission ausgewählt wurde, wird hierüber das Fenster zur Auswahl des Artikels und Eingabe der Menge aufgerufen. Andernfalls wird der Vorgang abgelehnt.