27
182-96100 Einstieg in die App-Entwicklung für Android-Geräte mit Java Dr. Cora Burger www.cora-burger.de

Java für Fortgeschrittene - cora-burger.de · 182-96100 Einstieg in die App-Entwicklung für Android-Geräte mit Java Dr. Cora Burger

Embed Size (px)

Citation preview

182-96100 Einstieg in die App-Entwicklung

für Android-Geräte mit Java

Dr. Cora Burger

www.cora-burger.de

Tagesplan

10:00-11:30 Uhr Java-Wiederholungsquiz, Android Studio, HalloWelt-App

Java-OOP, Projekt-Struktur

11:30-11:45 Uhr Pause

11:45-13:15 Uhr Echo, Würfel Activities, Zusammenspiel Layout – Programmierung, Ereignisbehandlung

13:15-14:00 Uhr Mittagspause

14:00-15:30 Uhr Zahlenratespiel, Notizen Layout, Listen

15:30-15:45 Uhr Pause

15:45-17:15 Uhr Vokabeltrainer, Veröffentlichen, Resümee, Vorschau (Fortsetzung)

Layout, Listen

19.01.2019 2 Einstieg in die App-Entwicklung für Android-Geräte mit Java

Wiederholungsquiz

• Was versteht man unter einer Variablen? • Was ist der Unterschied zwischen einem elementaren Datentyp und

einer Klasse? • Welche Möglichkeiten gibt es zur Steuerung des Kontrollflusses? • Aus welchen Komponenten besteht eine Klasse? • Wozu dient die Sichtbarkeit? • Was versteht man unter Settern und Gettern? • Welche Aufgaben können im Rahmen eines Konstruktors erfüllt

werden? • Was bedeutet der Begriff „extends“? • Was ist der Unterschied zwischen „überladen“ und „override“? • Worin unterscheiden sich abstrakte Klassen und Interfaces? • Nennen Sie einige Einsatzbereiche für Interfaces. • Was versteht man unter einem Ereignis?

19.01.2019 3 Einstieg in die App-Entwicklung für Android-Geräte mit Java

Datentypen Datentyp Größe Wertebereich Operationen Wrapper-Klasse

Ganze Zahlen byte 8 Bit −128 … +127 +, -, *, /, % Byte

short 16 Bit −32.768…+32.767 Short

int 32 Bit −2.147.483.648…

+2.147.483.647 Integer

long 64 Bit −9.223.372.036.85

4.775.808…

+9.223.372.036.85

4.775.807

Long

Fließkomma-zahlen

float 32 Bit ±1,4E−45 … ±3,4E+38

+, -, *, / Float

double 64 Bit ±4,9E−324 …

±1,7E+308 Double

Boolscher

Wahrheitswert boolean 1 Bit true/false !, &&, || Boolean

Unicode-Zeichen char 16 Bit U+0000 ... U+FFFF Character

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 4

Arrays

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 5

• Einfache Arrays int [] monatstage = {31, 28, 31, 30, …, 30, 31}; int [] monatstage = new monatstage [11];

• Collections – ArrayList

– HashSet, TreeSet Keine Duplikate

– HashMap, TreeMap Schlüssel-Wert-Paare

Kontrollfluss

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 6

Verzweigung ein-/zweiseitig if(…){…} else {…}

mehrseitig switch(…){case 1: …; case 2: …;}

Schleife kopfgesteuert for(…){…}

while(…){…}

fußgesteuert do{…}while(…);

Klasse

Rechner

-operand1: int -operand2: int

+Rechner() +Rechner(op1: int, op2: int) +setOp1(op: int) +setOp2(op: int) +getOp1(): int +getOp2(): int +addieren(): int

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 7

Klassenname

Attribute

Konstruktoren

Setter/Getter

Andere Methode(n)

Sich

tbar

keit

Datentyp

Aufrufparameter

Datentyp der Rückgabe

Rechner rinstanz = new Rechner(5,7);

public class Rechner

{

private int operand1;

private int operand2;

public Rechner(int op1, int op2)

{

this.operand1 = op1;

this.operand2 = op2;

}

}

Vererbung

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 8

EinfacherRechner ERAttribute ERMethoden

SpezialRechner SRAttribute SRMethoden

SuperRechner SuRAttribute SuRMethoden

Geometrie {abstract}

GAttribute GMethoden

<<interface>> Comparable

CMethodenköpfe

<<interface>> Runnable

RMethodenköpfe

extends

implements

Ereignisbehandlung

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 9

GUI -knopf1: Button -knopf2: Button +onClick(v: View)

<<interface>> OnClickListener

+onClick(v: View)

implements

Android Studio: Projekt starten

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 10

Android Studio: Oberfläche

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 11

Hallo Welt: Projektstruktur

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 12

Lebenszyklus von Activity

@Override

protected void onCreate

(Bundle savedInstanceState)

{

super.onCreate

(savedInstanceState);

setContentView

(R.layout.activity_main);

}

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 13

Layout

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 14

<?xml version="1.0" encoding="utf-8"?>

<android.support.constraint.ConstraintLayout

xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:app="http://schemas.android.com/apk/res-auto"

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent"

tools:context=".HalloWeltActivity">

<TextView

android:id="@+id/textView"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Hello World!"

app:layout_constraintBottom_toBottomOf="parent"

app:layout_constraintLeft_toLeftOf="parent"

app:layout_constraintRight_toRightOf="parent"

app:layout_constraintTop_toTopOf="parent" />

</android.support.constraint.ConstraintLayout>

Test/Ausführung

Emulator Reales Gerät

PC ̶ Passender USB-Treiber

Android Studio

Android-Gerät ̶

Entwickleroptionen – USB Debugging Installation aus unbekannter Quelle

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 15

https://developer.android.com/training/basics/firstapp/running-app

Layout-Erstellung

Constraint-Layout

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 16

Wichtige Attribute 1. ID 2. onClick 3. Text

1. Button-ID

2. Programmierung @Override

protected void onCreate(Bundle savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_hallo_welt); Button btnZumEcho = findViewById(R.id.btnZumEcho);

}

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 17

1. Layout

2. Einfache Ereignisbehandlung

1. Programmierung public void btnZumEchoClicked(View v)

{

… // Aktionen nach Button-Klick

}

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 18

2. Layout

3. Textressourcen definieren

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 19

Neue Activity

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 20

Activity starten

public void btnZumEchoClicked(View v)

{

Intent intent = new Intent(this,

EchoActivity.class);

startActivity(intent);

}

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 21

Echo-Layout 1

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 22

Komplexe Ereignisbehandlung I

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 23

Komplexe Ereignisbehandlung II

public class EchoActivity extends AppCompatActivity implements

View.OnClickListener {

Button btnEcho; Button btnZumWuerfel;

… btnEcho = findViewById(R.id.btnEcho); btnEcho.setOnClickListener(this); …

@Override

public void onClick(View v) {

EditText txtEingabe = (EditText)findViewById(R.id.txtEingabe);

TextView txtAusgabe = (TextView)findViewById(R.id.txtAusgabe);

String eingabe = txtEingabe.getText().toString();

Toast.makeText(this, eingabe, Toast.LENGTH_LONG).show();

switch(v.getId())

{

case R.id.btnEcho:

txtAusgabe.setText(eingabe);

break;

case R.id.btnZumWuerfel:

Intent intent = new Intent(this, EchoActivity.class);

intent.putExtra(EXTRA_MESSAGE, eingabe);

startActivity(intent);

break;

}

}

}

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 24

Würfel

TextView txtAugen;

Random zufall;

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_wuerfel); txtAugen = (TextView)findViewById(R.id.txtAugenZahl); zufall = new Random();

}

public void wuerfeln(View v) { int augen = zufall.nextInt(6)+1; txtAugen.setText(augen); if(augen==6) { Toast.makeText(this, "Hurra, eine 6 gewürfelt", Toast.LENGTH_LONG).show(); }

}

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 25

Konfiguration

19.01.2019 Einstieg in die App-Entwicklung für Android-Geräte mit Java 26

27 Einstieg in die App-Entwicklung für Android-Geräte mit Java

Vielen Dank fürs Mitmachen

und viel Spaß bei der App-Entwicklung!

19.01.2019

Fortsetzung: 182-96150 App-Entwicklung für Android-Geräte mit Java – Fortgeschrittene Termine: 04. und 11.02.2019 Themen: Intent++, Fragmente / Listenverarbeitung, SQLite –Datenbank usw.

Bildquellen: www.pixabay.com, developer.android.com