Anforderung. View Button. <LinearLayout android:layout_width="match_parent" Layout. <TextView.../> android:orientation="vertical"> LinearLayout

Save this PDF as:
 WORD  PNG  TXT  JPG

Größe: px
Ab Seite anzeigen:

Download "Anforderung. View Button. <LinearLayout android:layout_width="match_parent" Layout. <TextView.../> android:orientation="vertical"> LinearLayout"

Transkript

1 Activities Views und Layouts Activity Benutzer Interaktion FullScreen UI-Element View und ViewGroup View: Abstrakte Basisklasse für UI-Komponenten (Widgets) ViewGroup: View, Sammlung/Kontainer von Views UI-Struktur ist Baum aus View/ViewGroup-Komponenten Widget: Fertige UI-Komponente (View) wie Button, TextView, Layout: Container, Anordnung (ViewGroup) wie LinearLayout, View TextView ViewGroup View Button ViewGroup View Button Prof. Dr. Peter Barth, Mobile Computing 1 Beispiel ToggleApp Anforderung Grüße in vielen Sprachen Beenden Interaktionselemente Titel Zwei Buttons Beenden Durchschalten durch Gruß-Sprachen Eine Grußanzeige Layout (zunächst) 3 Zeilen Oben Titel, unten Display des Grußes In der Mitte ausgefüllte Buttonleiste Prof. Dr. Peter Barth, Mobile Computing 2 Layouts Deklarativ Layout LinearLayout <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" <LinearLayout android:layout_width="match_parent" XML-Beschreibung android:orientation="vertical" > android:layout_height="match_parent" Layout <TextView android:orientation="vertical"> für UI-Komponenten <TextView android:layout_width="match_parent" <LinearLayout Container für Komponenten android:orientation="horizontal" > Mischen Layouts, Widgets Anordnung, meist relativ Layouts sind ViewGroups, android:gravity="center" </LinearLayout> <LinearLayout android:layout_width="match_parent" LinearLayout <TextView XML-Kontainer android:orientation="horizontal" > </LinearLayout> Einfachstes Layout Attribute zur Konfiguration android:layout_width="wrap_content" Horizontal von links Layout nach rechts auffüllend LinearLayout android:onclick="onclickfinish" Vertikal von oben nach horizontal, vertikal unten auffüllend android:layout_width="wrap_content" verschachtelt Weitere Attribute notwendig/möglich Widgets Verschachtelung </LinearLayout> Button <TextView android:layout_width="match_parent" TextView android:gravity="center" Prof. Dr. Peter Barth, Mobile Computing </LinearLayout> res/layout/toggle.xml 3 Prof. Dr. Peter Barth, Mobile Computing 4

2 Widgets ID, Ressourcen IDs Android assoziiert Integer-Zahlen als IDs mit Ressourcen Meist für Widgets Automatische Generierung der Zahlen, Nutzen der Konstanten android:id Assoziiert eine ID mit dem Widget, wichtig zur Referenzierung aus dem Definiert eine neue ID btn_toggle für das Ressource +: Definiere android:layout_width="wrap_content" Ressourcen In separten Dateien, In Code ID nach Ressource einfach Ressourcen-IDs von android erzeugt und verwaltet (R.java) Prof. Dr. Peter Barth, Mobile Computing 5 Widgets Breite, Höhe, Gewicht Breite, Höhe Braucht jede View/ViewGroup android:layout_width, android:layout_height wrap_content Nur so viel Platz wie notwendig match_parent (früher fill_parent) So auffüllen, dass Vater vollständig ausgefüllt wird Gewicht Verteilung beim Auffüllen 0: Nicht berücksichtigen!= 0: Proportionale Verteilung android:layout_width="wrap_content" Gewicht ist nur sinnvoll, wenn umfassende ViewGroup (z.b. LinearLayout) match_parent hat wenn Widget selbst wrap_content hat Prof. Dr. Peter Barth, Mobile Computing 6 Widgets Beispiel Breite Höhe, Gewicht Preview in IDE Ab und zu richtig Beispiele LinearLayout je Zeile layout_height wrap_content layout_width match_parent Außer beim letzten (5.) Unterschiedliche layout_weights Probieren. IDE Design Tooling, bitte nur zum anschauen, erstellen mit Text Prof. Dr. Peter Barth, Mobile Computing 7 Text-Ressourcen Konstanten in Quellen vermeiden Ressource-Dateien Beispiel Text-Ressourcen, Schlüssel-Wert/Kombinationen Verwendung In XML-Ressourcen wie <name> ist Schlüssel Definition Ordner res/values Datei strings.xml Einträge in <ressources> Typ <string> android:layout_width="wrap_content" <resources> <string name="app_name">toggle</string> <string name="msg_btn_finish">ende</string> <string name="msg_btn_toggle">toggle</string> <string name="msg_toggle_app">toggleapp</string> </resources> res/values/strings.xml Prof. Dr. Peter Barth, Mobile Computing 8

3 ToggleActivity Spezifische Imports (IDE) Wird ab jetzt weggelassen TAG: Konvention zum Loggen Member Views aus Layout Namenskonvention Beginnt mit m (Android Doku, mache ich nicht, in IDE ersichtlich) Typabkürzung am Anfang, Diskriminator, optional package de.medieninf.mobcomp.toggle; // alles in Paketen import android.app.activity; import android.os.bundle; import android.util.log; import android.widget.button; import android.widget.textview; public class ToggleActivity extends Activity { final static String TAG = ToggleActivity.class.getSimpleName(); private TextView tvdisplay; private Button btntoggle; oncreate Log.v(TAG, "oncreate"); setcontentview(r.layout.toggle); super, muss gerufen werden tvdisplay = (TextView) findviewbyid(r.id.tv_display); Layout setzen btntoggle = (Button) findviewbyid(r.id.btn_toggle); findviewbyid für wichtige Views Casten notwendig (View) Prof. Dr. Peter Barth, Mobile Computing 9 ToggleActivity Verhalten Daten greetings: Anzuzeigende Strings current: Welches wird gezeigt Verhalten OnClickListener Einer je Button (im Beispiel) Einer für alle, Diskrimierung über view.getid() Ändere TextView Fehlt Direkt im Listener möglich Oder Aufruf weiterer Methoden (Bsp) Initial TextView setzen public class ToggleActivity extends Activity { String[] greetings = { "Hallo", "Hello", "Salut", "Hola", " 你 好 (n ǐ hǎo)" ; int current=0; private View.OnClickListener ontogglelistener = new View.OnClickListener() { public void onclick(view view) { onclicktoggle(view); ; public void onclicktoggle(view view) { Log.v(TAG, "onclicktoggle"); current = (current+1) % greetings.length; tvdisplay.settext(greetings[current]); Prof. Dr. Peter Barth, Mobile Computing 10 Verhalten Alternative zu Callbacks App Beenden Callback mit Signatur public void (View ) Aufruf von Activity-Methode finish() In Android-Apps vermeiden Alles bleibt offen, System schließt Method-Binding in Layout-Datei android:onclick und Methodenname android:on* verfügbar Vorteil: ID nicht notwendig public class ToggleActivity extends Activity { public void onclickfinish(view view) { Log.v(TAG, "onclickfinish"); finish(); android:layout_width="wrap_content" android:onclick="onclickfinish" res/layout/toggle.xml Nachteil: Mischen Layout und Callback, nicht wiederverwendbar Prof. Dr. Peter Barth, Mobile Computing 11 Ressourcen Ressourcen Unterhalb von res, keine weiteren Unterverzeichnisse, XML- oder Binär-Dateien Nur Kleinbuchstaben, Zahlen und _, optional umgebungsabhängig (Sprachen -en) Drawables (drawables, mipmap) Bilder und Grafiken je nach Auflösung XML-Ressourcen layout: Layoutdefinitionen menu: Kontext- und Optionsmenus values: Schlüssel-/Wert-Definitionen (Text, Farben, ) xml: Alles sonstiges XML-ige, wird vorkompiliert raw: Andere Binärresourcen (nicht vorkompiliert) Alternative zu res, Ressourcen in assets Unterordner beliebig, Format beliebig, Zugriff als Stream Prof. Dr. Peter Barth, Mobile Computing 12

4 Ressourcen drawable, mipmap Drawable, zeichenbar Bilder und Grafiken, JPEG, PNG, Bitmap Nine-Patch-Files (.9.png) Spezielle XML-Dateien Mipmap, wie drawable, bleibt für alle *dpi bei APK-build vorhanden Gut für Icons Verschiedene Ordner, Ressourcen je nach Auflösung in dpi (dots per inch) -mdpi: Ordner mit drawable für Geräte mit ~160 dpi hdpi: ~200 dpi, xhdpi; ~320 dpi, xxhdpi: ~480 dpi, xxxhdpi: ~640 dpi Größe davon unabhängig, gemessen in dp (dip) für 160 dpi screens res/mipmap-mdpi res/mipmap-mdpi/ic_launcher.png res/mipmap-hdpi res/mipmap-hdpi/ic_launcher.png res/mipmap-xhdpi res/mipmap-xhdpi/ic_launcher.png res/mipmap-xxhdpi res/mipmap-xxhdpi/ic_launcher.png Prof. Dr. Peter Barth, Mobile Computing 13 Ressourcen Definition Definition, XML-Datei Schlüssel/Wert: values Ganze Datei: layout, ohne Endung Autogeneriert: id <resources> <string name="msg_btn_toggle">toggle</string> </resources> res/values/strings.xml res/layout/toggle.xml public final class R { Kompilieren public static final class id { Datei R.java, public static final int btn_toggle=0x7f09003f; automatisch generiert public static final class string { Nach Typ unterschieden public static final int msg_btn_toggle=0x7f0b0012; id, string, layout, id public static final class layout { Nicht ändern, nicht unter Versionskontrolle stellen public static final int toggle=0x7f040018; Steht auch unter build build/generated/source/r/debug/de/medieninf/mobcomp/toggle/r.java Prof. Dr. Peter Barth, Mobile Computing 14 Ressourcen Verwenden Verwenden in Ressourcen (XML) Zugriff über Beispiel: vordefiniert in Android Verwenden in Java R wird automatisch inkludiert, kein import Zugriff über Zahl, getresources().get<typ>(<konstante>) Viele Methoden unterstützen int Parameter, in R definierter Key res/layout/toggle.xml Zugriff auf Ressource über Ressourcen-Schlüssel String msgbuttontoggle = getresources().getstring(r.string.msg_btn_toggle); btntoggle.settext(msgbuttontoggle); Direkt verwenden Ressourcen-Schlüssel btntoggle.settext(r.string.msg_btn_toggle); Prof. Dr. Peter Barth, Mobile Computing 15 Ressourcen Verwenden, Typisches Beispiel Zugriff auf Layout setcontentview Immer so die Wurzel ViewGroup setzen Immer in oncreate View-Komponenten Zugriff findviewid sucht in Baum ab Wurzel nach ID Casten notwendig, zurückgegebener Typ im View View-Komponenten cachen private TextView tvdisplay; private Button btntoggle; setcontentview(r.layout.toggle); tvdisplay = (TextView) findviewbyid(r.id.tv_display); btntoggle = (Button) findviewbyid(r.id.btn_toggle); Ändern sich nicht über kompletten Lebenszyklus der Activity Teuer, daher cachen in Instanzvariablen, üblicherweise in oncreate Prof. Dr. Peter Barth, Mobile Computing 16

5 Styling Direkte Attribute Direkte Attribute Je Element Direkte Attribute Verändert Aussehen Attribute text* textcolor textsize textstyle. (siehe Dokumentation) Vermeiden: Schnell Chaotisch und uneinheitlich <TextView android:textsize="24sp" android:textstyle="bold italic" android:textstyle="bold" android:textstyle="bold" res/layout/toggle.xml Prof. Dr. Peter Barth, Mobile Computing 17 Widgets Größenangaben dp (oder dip) density independent pixel, auflösungsunabhängige Pixel 1dp entspricht einem Pixel auf einem 160 dpi Display Für alles verwenden was skalierbar ist Außer Fonts sp, scale independent pixel Wie dp, nur berücksichtigt benutzerspezifische Fontgrößenpräferenzen Für Fontgrößen verwenden Nicht verwenden px, pixel: Aktuelle Pixel auf dem Bildschirm in (inch), mm (mm): basiert auf Displaygröße pt, point: 1/72 inch, basiert auf Displaygröße <TextView android:textsize="24sp" Prof. Dr. Peter Barth, Mobile Computing 18 Styling Styles Styles Sammlung von Attributen Vererbungshierarchy.Notation für lokale Vererbung Einheitlich, zentral änderbar Verwenden style: Style auf View anwenden Mischen mit anderen Attributen möglich Theme res/values/style.xml <style name="togglestyle" <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item <item name="android:textstyle">bold</item> </style> <style name="togglestyle.important"> <item </style> <TextView res/layout/toggle.xml android:textstyle="italic" Anwendung eines Style auf alle Views (einer Activity) Prof. Dr. Peter Barth, Mobile Computing 19 String-Array Resource String-Array Vermeiden von Konstanten Listen/Felder <string-array> in strings Ressource items Zugriff im Code als arrays Wie erwartet Stark empfohlen <resources> <string-array name="greetings"> <item>hallo</item> <item>hello</item> <item>salut</item> <item>hola</item> <item> 你 好 (n ǐ hǎo)</item> </string-array> </resources> private String[] greetings; private int current; res/values/strings.xml greetings = getresources().getstringarray(r.array.greetings); current = 0; tvdisplay.settext(greetings[current]); Prof. Dr. Peter Barth, Mobile Computing 20

6 Widgets Übersicht Übersicht über wichtigste Widgets und Verwendung Button Toast TextView, EditText CheckBox RadioGroup, RadioButton Spinner DatePicker, TimePicker ListView Button, ImageButton Button Beschriftung Text ImageButton Angabe eines Bilds, Ressource Button und ImageButton Meistens Definition einer ID zum Zugriff auf ViewKomponente in Java, Basis für Interaktion R.id.btn_text, R.id.btn_image Bindung kann auch direkt erfolgen Methode onbuttonclicked vermeiden android:layout_width="match_parent" android:text="button" android:onclick="onbuttonclicked" <ImageButton android:layout_width="match_parent" Prof. Dr. Peter Barth, Mobile Computing 21 Prof. Dr. Peter Barth, Mobile Computing 22 Button Callback Wichtigster Callback Was passiert beim Click Listener OnClickListener In Java realisieren Alternative direktes Binding Methode mit Signatur public void (View view) View view Geklickter Button Rausfinden welcher über ID möglich private ImageButton imagebutton; setcontentview(r.layout.button); imagebutton = (ImageButton) findviewbyid(r.id.btn_image); imagebutton.setonclicklistener(new View.OnClickListener() { public void onclick(view view) { onbuttonclicked(view); ); public void onbuttonclicked(view view) { switch (view.getid()) { case R.id.btn_image: Log.v(TAG, "ImageButton clicked"); break; case R.id.btn_text: Log.v(TAG, "TextButton clicked"); break; default: Log.e(TAG, "no button clicked??"); break; Nur ein OnClickListener für viele Buttons möglich Prof. Dr. Peter Barth, Mobile Computing 23 Toast Toast: Kurze Nachricht Taucht auf Bildschirm für eine feste Zeitspanne auf Toast.LENGTH_SHORT, Toast.LENGTH_LONG Verwenden Static Factory, maketext Context-Object ist umgebende Activity Widget ohne XML Gut, um einfach zu tracen, ausprobieren setcontentview(r.layout.toast); Button btnshorttoast = (Button) findviewbyid(r.id.btn_short_toast); btnshorttoast.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { Toast toast = Toast.makeText(ToastActivity.this, "Short Toast", Toast.LENGTH_SHORT); toast.show(); Instanz ); umgebender Klasse public void onlongtoast(view view) { Toast toast = Toast.makeText(this, "Long Toast", Nicht Teil der App Toast.LENGTH_LONG); Interaktion toast.show(); ToastActivity.java Prof. Dr. Peter Barth, Mobile Computing 24

7 TextView TextView: Anzeige von Text Attribute von Java änderbar Einfache Auszeichnung möglich private TextView tvdisplay; private int text=0, fontsize=0, bg=0, fg=0; private String[] texts; private int[] colorids = {R.color.color1, ; public void onclickfontsize(view view) { fontsize = (fontsize == 28)? 8 : fontsize+1; tvdisplay.settextsize( TypedValue.COMPLEX_UNIT_SP, fontsize); texts = getresources().getstringarray( R.array.textview_msgs); public void onclicktext(view view) { normal, <b>fett</b>, <i>italic</i>, <u>unterstrichen</u>, <b><i><u>alles</u></i></b> <TextView android:layout_width="match_parent" <TextView android:layout_width="match_parent" <TextView android:layout_width="match_parent" text = (text + 1) % texts.length; tvdisplay.settext(texts[text]); <resources> <color public void onclickbackground(view view) { <color bg = (bg + 1) % colorids.length; tvdisplay.setbackgroundcolor( </resources> getresources().getcolor(colorids[bg])); res/values/colors.xml Prof. Dr. Peter Barth, Mobile Computing 25 ImageView ImageView: Anzeige von Bilder Meist Anzeige von Drawables <ImageView <ImageView private ImageView ivdisplay; private String[] exts = {"m", "h", "xh", "xxh"; int ext = 0; Sucht sich passende Größe public void onclicksize(view view) { ext = (ext + 1) % exts.length; 3418 drawable/iclh.png String fname = "icl"+exts[ext]; 2206 drawable/iclm.png int id = getresources().getidentifier(fname, 4842 drawable/iclxh.png "drawable", getpackagename()); 7718 drawable/iclxxh.png ivdisplay.setimageresource(id); 3418 mipmap-hdpi/ic_launcher.png Kopie aus 2206 mipmap-mdpi/ic_launcher.png 4842 mipmap-xhdpi/ic_launcher.png mipmap-* 7718 mipmap-xxhdpi/ic_launcher.png Prof. Dr. Peter Barth, Mobile Computing 26 EditText EditText: Eingabefeld Hinweis, wenn leer möglich Ähnlich zu TextView Methoden gettext, settext: Setzen/Holen Inhalt (Dokumentation) <EditText android:hint="hinweis, wenn leer" <TextView <TextView private EditText etedit; private TextView tvoben; private TextView tvunten; setcontentview(r.layout.editext); etedit = (EditText) findviewbyid(r.id.et_edit); tvoben = (TextView) findviewbyid(r.id.tv_oben); tvunten = (TextView) findviewbyid(r.id.tv_unten); Prof. Dr. Peter Barth, Mobile Computing 27 EditText Verwenden TextWatcher, zum kontinuierlichen Aktualisieren des oberen TextView Update-Button, um unteren TextView zu aktualisieren private TextWatcher textwatcher = new TextWatcher() { public void beforetextchanged(charsequence s, int start, int count, int after) { public void ontextchanged(charsequence s, int start, int before, int count) { public void aftertextchanged(editable s) { tvoben.settext(etedit.gettext()); ; etedit.addtextchangedlistener(textwatcher); Sondernzeichen ö long press o public void onclickupdate(view view) { tvunten.settext(etedit.gettext()); Prof. Dr. Peter Barth, Mobile Computing 28

8 CheckBox CheckBox: Ein/Aus Verwenden <LinearLayout.. <CheckBox android:text="check Me 1" <CheckBox android:text="check Me 2" </LinearLayout> <CheckBox android:text="check Me 3" ischecked, setchecked; Listener bei Änderungen private CompoundButton.OnCheckedChangeListener occl = new CompoundButton.OnCheckedChangeListener() { public void oncheckedchanged(compoundbutton c, boolean value) { String msg = String.format("cb1: %s, cb2: %s, cb3: %s", cb1.ischecked(), cb2.ischecked(), cb3.ischecked()); tvcheckbox1.settext(msg); ; cb1 = (CheckBox) findviewbyid(r.id.cb1); CheckBox[] cbs = {cb1, cb2, cb3; for (CheckBox cb : cbs) cb.setoncheckedchangelistener(occl); public void onclickupdate(view view) { String msg = ; tvcheckbox2.settext(msg); public void onclickset(view view) { cb1.setchecked(true); cb2.setchecked(false); cb3.setchecked(true); Prof. Dr. Peter Barth, Mobile Computing 29 RadioGroup, RadioButton RadioButtons in RadioGroup Eins aus mehreren RadioGroup für eins aus Verwenden <RadioGroup <RadioButton android:text="rot" android:textcolor="#ff0000" <RadioButton android:text="grün" android:textcolor="#00ff00" <RadioButton android:text="blau" android:textcolor="#0000ff" </RadioGroup> private RadioGroup.OnCheckedChangeListener occl = new RadioGroup.OnCheckedChangeListener() { Alles über RadioGroup public void oncheckedchanged(radiogroup g, int ceckedid) { Geht auch mit RadioButtons switch (checkedid) { case R.id.rb_red: tvcolor.settext("rot"); break; case R.id.rb_green: tvcolor.settext("grün"); break; public void onclicknext(view view) { case R.id.rb_blue: tvcolor.settext("blau"); break; switch (rgcolor.getcheckedradiobuttonid()) { case R.id.rb_red: rgcolor.check(r.id.rb_green); break; ; case R.id.rb_green: public void oncreate(bundle savedinstancestate) { rgcolor.check(r.id.rb_blue); break; rgcolor.setoncheckedchangelistener(occl); case R.id.rb_blue: Prof. Dr. Peter Barth, Mobile Computing 30 rgcolor.check(r.id.rb_red); break; Spinner Spinner: Eins aus Mehreren Dropdown oder Dialog Automatisches Scrollen Aus String-Feldern Ressourcen aufgebaut <string name="spinner_raeume_prompt"> Welcher Raum?</string> <string-array name="raeume"> <item>raum 11</item> <item>raum 12</item> <item>raum 13</item> <item>raum 14</item> <item>cube</item> <item>serverraum</item> <item>raum 17</item> <item>raum 18</item> </string-array> <Spinner android:spinnermode="dropdown" android:spinnermode="dialog" Prof. Dr. Peter Barth, Mobile Computing 31 Spinner Adapter AdapterView Anzeige vieler Datensätze (z.b. Spinner), Oberklasse AdapterView Bindeglied zwischen View und Menge von Datensätzen ist Adapter Adapter Datenquelle: Füllen der AdapterView mit Datensätzen Ansicht: Welche View für die Darstellung Vordefinierte generische Adapter: ArrayAdapter, CursorAdapter Verwendung ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.raeume, android.r.layout.simple_spinner_item); adapter.setdropdownviewresource(android.r.layout.simple_spinner_dropdown_item); spinnerraeume.setadapter(adapter); // vom Typ Spinner Konstruktoren möglich adapter verwenden Quellen statt Ressource möglich, add/remove möglich Static Factory Method Adapter von Ressource Vordefinierte Formate für Anzeige Prof. Dr. Peter Barth, Mobile Computing 32

9 Spinner AdapterView Listener OnItemSelectedListener Teil der AdapterView Aufruf bei Änderung der Auswahl Zugriff auf relevanten Zustand und Strukturen AdapterView.OnItemSelectedListener avoisl = new AdapterView.OnItemSelectedListener() { public void onitemselected(adapterview<?> parent, View view, int position, long id) { String selected = (String) parent.getselecteditem(); tvselected.settext(selected); public void onnothingselected(adapterview<?> parent) { tvselected.settext(""); ; public void oncreate spinnerraeume.setonitemselectedlistener(avoisl); Qualifizierter Name üblich, vermeiden von Konflikten Prof. Dr. Peter Barth, Mobile Computing 33 DatePicker DatePicker: Ein Datum auswählen Inline Verwendbar Empfohlen ist Verwendung als DialogFragmente private DatePicker datepicker; private TextView tvdate; public void onclickupdatedate(view view) { tvdate.settext(getdatefromdatepicker(datepicker).tostring()); // stackoverflow: /getdate-from-datepicker-android public static java.util.date getdatefromdatepicker( DatePicker datepicker) { int day = datepicker.getdayofmonth(); int month = datepicker.getmonth(); int year = datepicker.getyear(); Calendar calendar = Calendar.getInstance(); calendar.set(year, month, day); return calendar.gettime(); <DatePicker Prof. Dr. Peter Barth, Mobile Computing 34 DatePicker Listener Kontinuierliches Update DatePicker.OnDateChangedListener Etwas umständlich mit init initialisieren private DatePicker.OnDateChangedListener dcl = new DatePicker.OnDateChangedListener() { public void ondatechanged(datepicker view, int year, int monthofyear, int dayofmonth) { Calendar calendar = Calendar.getInstance(); calendar.set(year, monthofyear, dayofmonth); tvdatecont.settext(calendar.gettime().tostring()); ; public void oncreate Calendar cal = Calendar.getInstance(); datepicker.init(cal.get(calendar.year), cal.get(calendar.month), cal.get(calendar.day_of_month), dcl); Prof. Dr. Peter Barth, Mobile Computing 35 TimePicker TimePicker: Eine Zeit auswählen Ähnlich zu DatePicker, Unterschiede im Detail TimePicker.OnTimeChangedListener tcl = new TimePicker.OnTimeChangedListener() { public void ontimechanged(timepicker view, int hourofday, int minute) { Calendar calendar = Calendar.getInstance(); calendar.set(calendar.hour_of_day, hourofday); calendar.set(calendar.minute, minute); calendar.set(calendar.second, 0); tvtimecont.settext(calendar.gettime().tostring()); ; timepicker.setontimechangedlistener(tcl); Calendar cal = Calendar.getInstance(); timepicker.setcurrenthour(cal.get(calendar.hour_of_day)); timepicker.setcurrentminute(cal.get(calendar.minute)); public void onclickupdatetime(view view) { Calendar calendar = Calendar.getInstance(); calendar.set(calendar.hour_of_day, timepicker.getcurrenthour()); calendar.set(calendar.minute, timepicker.getcurrentminute()); calendar.set(calendar.second, 0); Prof. tvtime.settext(calendar.gettime().tostring()); Dr. Peter Barth, Mobile Computing 36

10 ListView ListView Auswahl aus Liste von Möglichkeiten Initialisieren mit ressource ListViewActivity Vorgefertigt Mit Activity außen herum Dokumentation <string-array name="widgets"> <item>button</item> <item>toast</item> <item>textview</item> <item>imageview</item> <item>edittext</item> <item>checkbox</item> <item>radio</item> <item>spinner</item> <item>datepicker</item> <item>timepicker</item> </string-array> <ListView private ListView lvwidgets; private List<String> widgets; widgets = Arrays.asList(getResources().getStringArray(R.array.widgets)); lvwidgets = (ListView) findviewbyid(r.id.lv_widgets); Prof. Dr. Peter Barth, Mobile Computing 37 ListView Adapter ArrayAdapter Initialisieren und setzen Callbacks Callback OnItemClickListener Mit Klassenpräfix AdapterView Verhalten Generiert Klassennamen Startet Activity Achtung: Alle Activities müssen in Manifest sein ArrayAdapter<String> widgetsadapter = new ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, widgets); lvwidgets.setadapter(widgetsadapter); lvwidgets.setonitemclicklistener(lvoicl); private AdapterView.OnItemClickListener lvoicl = new AdapterView.OnItemClickListener() { public void onitemclick(adapterview<?> parent, View view, int position, long id) { String widgetname = widgets.get(position); String currentpackage = this.getclass().getpackage().getname(); String classname = currentpackage + "." + widgetname + "Activity"; Class<Activity> activity = (Class<Activity>) Class.forName(className); Intent intent = new Intent(WidgetsActivity.this, activity); startactivity(intent); ; Prof. Dr. Peter Barth, Mobile Computing 38 Zustand bei Neustart, Änderung der Ausrichtung Neustart der App Passiert häufig, zum Beispiel beim Rotieren (orientation change) Zustand/Benutzerdaten müssen gespeichert werden Zustand speichern mit Bundle Bundle savedinstancestate Viele Controls legen dort automatisch Ihren Zustand ab Eigenen Zustand dort auch speichern Eigenen Zustand speichern Wenn nicht schon automatisch gespeichert Muss Grundtyp/String/Wrapper sein oder Parcelable implementieren Methoden, Bundle als Parameter onsaveinstancestate, onrestoreinstancestate, super nicht vergessen Bundle schon in oncreate verfügbar, nicht nutzen oncreate Created Resumed (sichtbar, aktiv) onresume onrestoreinstancestate onstart onpause onsaveinstancestate onstop ondestroy Destroyed Prof. Dr. Peter Barth, Mobile Computing 39 ToggleApp Zustand speichern Zustand der ToggleApp Controls, werden automatisch gesichert Grüße, werden automatisch neu geladen Aber: Ausgewählter Gruß, int Instanzvariable Problem Beim Drehen der ToggleApp wird immer erster Eintrag gezeigt Ziel ist letztgewählten Eintrag beizubehalten Lösung *InstanceState Aktualisierung Anzeige, da nach oncreate private String[] greetings; private int current; final static String CURRENT = "current"; protected void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); outstate.putint(current, current); protected void onrestoreinstancestate(bundle savedinstancestate) { super.onrestoreinstancestate(savedinstancestate); current = savedinstancestate.getint(current); tvdisplay.settext(greetings[current]); Prof. Dr. Peter Barth, Mobile Computing 40

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

Google Android API. User Interface. Eine knappe Einführung Google Android API User Interface Eine knappe Einführung Google Android API User Interface Designelement Wofür Klasse/Package View Basisklasse für alle Designelemente public class android.view.view Viewgroup

Mehr

Labor 2 : Hello, World Plus

Labor 2 : Hello, World Plus Labor 2 : Hello, World Plus Ziel Als nächstes werden Sie eine neue Anwendung HelloAndroidPlus erstellen, die eine Erweiterung der Funktionalität der ersten Übung HelloAndroidPrj beinhaltet: Sobald man

Mehr

2. GUI-Programmierung für mobile Geräte

2. GUI-Programmierung für mobile Geräte 2. GUI-Programmierung für mobile Geräte Lernziele 2. GUI-Programmierung für mobile Geräte Themen/Lernziele: Einführung Lebenszyklus einer Android-Anwendung Beispiele GUI-Elemente Einbindung externer Ressourcen

Mehr

Mobile App Development. - Grafische Oberflächen -

Mobile App Development. - Grafische Oberflächen - Mobile App Development - Grafische Oberflächen - Inhalt Ressourcen Allgemeines Views Layouting Ressourcen Android Ressourcen Ressourcen sind Dateien und Objekte, wie Layouts, Bilder, Farben und IDs Zu

Mehr

Android User Interface

Android User Interface Android User Interface Eine Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 2 besprechen (inkl. Repetition)

Mehr

Android GUI Entwicklung

Android GUI Entwicklung Android GUI Entwicklung Aktuelle Technologien verteilter Java Anwendungen Referent: Stefan Haupt Hello World! Agenda Einführung & Motivation Android Applikationen UI-Komponenten Events Ressourcen Kommunikation

Mehr

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

Einführung in die Android App-Entwicklung. Patrick Treyer und Jannis Pinter Einführung in die Android App-Entwicklung Patrick Treyer und Jannis Pinter Agenda Was ist Android? Android Versionen Layout, Strings und das Android Manifest Activities, Intents und Services Entwicklungsumgebung

Mehr

Mobile App Development. - Grafische Oberflächen 2 -

Mobile App Development. - Grafische Oberflächen 2 - Mobile App Development - Grafische Oberflächen 2 - Inhalt Dimensionen Layouting Menüs Activities starten Übung Dimensionen Dimensionen Analog zu Strings und Farben können Dimensionen definiert werden Dimensionen

Mehr

2. GUI-Programmierung für mobile Geräte

2. GUI-Programmierung für mobile Geräte 2. GUI-Programmierung für mobile Geräte Lernziele 2. GUI-Programmierung für mobile Geräte Themen/Lernziele: Einführung Lebenszyklus einer Android-Anwendung Beispiele GUI-Elemente Einbindung externer Ressourcen

Mehr

App Entwicklung mit dem Android SDK

App Entwicklung mit dem Android SDK App Entwicklung mit dem Android SDK Grafische Benutzeroberfläche Dominik Wagner Informatik Sommercamp 2012 23.7.2012 Kurze Übersicht Um ein Layout für eine Android-Anwendung zu definieren schreibt man

Mehr

Android - Ressource. Leibniz Universität IT Services Anja Aue

Android - Ressource. Leibniz Universität IT Services Anja Aue Android - Ressource Leibniz Universität IT Services Anja Aue Ressourcen Verwaltung von Informationen zur Benutzeroberfläche ähnlich wie Cascading Style Sheets. Ablage von Strings, Bildern etc. in einer

Mehr

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM

SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM SEMINARVORTRAG ANDROID ENTWICKLUNG ETIENNE KÖRNER EMBEDDED SYSTEMS SS2013 - HSRM ÜBERSICHT Android Android Dalvik Virtuelle Maschine Android und Desktop Applikationen Android Entwicklung Tools R Activity

Mehr

Aus einem (sehr) begrenzten Wertebereich (z.b. Zahlen von 1-5) soll ein Wert ausgewählt werden.

Aus einem (sehr) begrenzten Wertebereich (z.b. Zahlen von 1-5) soll ein Wert ausgewählt werden. Lösungsvorschlag: 1. Aufgabe (18 Punkte): Auswahl Aus einem (sehr) begrenzten Wertebereich (z.b. Zahlen von 1-5) soll ein Wert ausgewählt werden. a) Nennen Sie drei unterschiedliche Arten, diese Interaktion

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Ressourcen XML in der Android-Entwicklung zur Definition von Ressourcen Im /res Ordner layout: Definition von Layouts

Mehr

Einführung in Android. 9. Dezember 2014

Einführung in Android. 9. Dezember 2014 Einführung in Android 9. Dezember 2014 Was ist Android? Software für mobile Geräte: Betriebssystem Middleware Kernanwendungen Android SDK: Tools und APIs zur Entwicklung von Anwendungen auf der Android-Plattform

Mehr

Entwickeln für Android OS

Entwickeln für Android OS Entwickeln für Android OS Am Beispiel der WAPLA Wissenschaftliche Arbeitstechniken und Präsentation Lern Applikation Christian Kain Kevin Kain Wolfgang Kremser Gregor Bankhamer Warum Android? Verbreitung

Mehr

6 Oberflächen und Daten

6 Oberflächen und Daten 111 6 Oberflächen und Daten Nachdem wir nun viel über die Gestaltung von Oberflächen und den Zugriff auf Views gelernt haben, möchten wir in diesem Kapitel zeigen, wie man Bildschirmseiten mit Daten aus

Mehr

Einführung in Android

Einführung in Android Einführung in Android FH Gießen Friedberg 12. Oktober 2010 Inhalt Historie / Prognosen / Trends Grundlagen Entwicklungsumgebung Standardbeispiel Erweitertes Beispiel Übung / Quellen 2 Grundlagen - Historie

Mehr

Übungen zur Android Entwicklung

Übungen zur Android Entwicklung Übungen zur Android Entwicklung Aufgabe 1 Hello World Entwickeln Sie eine Hello World Android Applikation und laden diese auf den Emulator. Leiten Sie hierfür die Klasse android.app.activity ab und entwerfen

Mehr

Mobile Systeme Android 07.04.2011

Mobile Systeme Android 07.04.2011 Mobile Systeme Android 07.04.2011 Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer

Mehr

App Entwicklung für Android Devices

App Entwicklung für Android Devices App Entwicklung Wahlpflichtkurs: Dozent: Referent: Fortgeschrittene Programmierung in Java Prof. Dr. Klinker Sebastian Fox 30.10.2011, Seite 1 Praktische Anwendung von Java Programmierung Java Applets

Mehr

Modellierung einer Android-App. 2. Mai 2013

Modellierung einer Android-App. 2. Mai 2013 Modellierung einer Android-App 2. Mai 2013 Taentzer Software-Praktikum 2013 42 Überblick Modellierung der wesentlichen Aspekte Welche Anwendungsfälle haben wir? Übersicht durch Anwendungsfalldiagramme

Mehr

Android. 2 24.09.2013 Mobile Systeme - Android

Android. 2 24.09.2013 Mobile Systeme - Android Android 24.09.2013 Android Plattform/Betriebssystem für mobile Endgeräte wie z.b. Smartphones Basiert auf dem Linux Kernel Bis auf grundlegende Prozesse werden alle Anwenden mithilfe einer speziellen JVM

Mehr

Tutorial. Programmierung einer Android-Applikation. Teil 1

Tutorial. Programmierung einer Android-Applikation. Teil 1 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

Mehr

Gib dem Projekt (z.b.) den Namen MyApplication und klicke auf Next. Der Domain-Name ist beliebig.

Gib dem Projekt (z.b.) den Namen MyApplication und klicke auf Next. Der Domain-Name ist beliebig. Mit Android Studio Seiten mit Text, Bildern Schaltknöpfen generieren, um zu den Seiten und zum Internet navigieren zu können. Stufe 1: Gehe zu http://developer.android.com/sdk/index.html, lade Android

Mehr

Teil I Augmented Learning - Vortragender: Krischan Udelhoven. Teil II Android - Vortragender: Folker Hoffmann

Teil I Augmented Learning - Vortragender: Krischan Udelhoven. Teil II Android - Vortragender: Folker Hoffmann Teil I Augmented Learning - Vortragender: Krischan Udelhoven Teil II Android - Vortragender: Folker Hoffmann Inhalt 1.Warum Android? 2.Was ist Android? 3.Entwicklung mit Android 18. Januar 2010 Android

Mehr

Einführung in Android (2) 16. Dezember 2014

Einführung in Android (2) 16. Dezember 2014 Einführung in Android (2) 16. Dezember 2014 Überblick Entwicklung der Benutzeroberfläche Views Layouts Menüs Listen und Adapter Einbinden weiterer Ressourcen Aktivierung von Activities Entwicklungsrichtlinien

Mehr

Cocktail-Rezepte-APP

Cocktail-Rezepte-APP Application Name: Cocktails Company Domain: gsog.de Empty Activity Main Activity: FindCocktailActivity Layout: activity_find_cocktail Was ist neu??

Mehr

Android Programmierung mit Java Studiengang MI

Android Programmierung mit Java Studiengang MI Android Programmierung mit Java Studiengang MI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel.

Mehr

Android Programmierung mit Java Studiengang MI

Android Programmierung mit Java Studiengang MI Android Programmierung mit Java Studiengang MI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel.

Mehr

Mobile App Development - Grafische Oberflächen 2 -

Mobile App Development - Grafische Oberflächen 2 - Mobile App Development - Grafische Oberflächen 2 - Inhalt Dimensionen Layouting Menüs Activities starten Übung Dimensionen Dimensionen Analog zu Strings und Farben können Dimensionen definiert werden Dimensionen

Mehr

Layouts Übersicht. FrameLayout Vermeiden. TableLayout. LinearLayout. FrameLayout Vermeiden. FrameLayout: Links oben. LinearLayout.

Layouts Übersicht. FrameLayout Vermeiden. TableLayout. LinearLayout. FrameLayout Vermeiden. FrameLayout: Links oben. LinearLayout. Layouts Übersicht FrameLayout Vermeiden Alles links oben Standard Horizontal und vertikal, nebeneinander Verschachteln (kann langsam werden) TableLayout nur für Tabellen GridLayout Geordnetes Layout Neuer

Mehr

Seminar Multimediale Werkzeuge Sommersemester 2011

Seminar Multimediale Werkzeuge Sommersemester 2011 Seminar Multimediale Werkzeuge Sommersemester 2011 Dipl.-Ing. Marco Niehaus marco.niehaus@tu-ilmenau.de 09.06.2011 Page 1 Android Development - Installation Java SDK wird benötigt (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Besprechung der Aufgaben 1) Legen Sie das Android-Projekt HelloWorldApp an so wie es in den vorherigen Folien beschrieben

Mehr

Mobile App Development. - Grafische Oberflächen -

Mobile App Development. - Grafische Oberflächen - Mobile App Development - Grafische Oberflächen - Inhalt Ressourcen Allgemeines Views Layouting Ressourcen Android Ressourcen Android Ressourcen Ressourcen sind Dateien und Objekte, wie Layouts, Bilder,

Mehr

Labor 1 : Hello, World

Labor 1 : Hello, World Labor 1 : Hello, World Ziel Sie sollten eine neue Applikation Hello, Android erstellen, dessen Startseite, wie folgt, aussieht (siehe Abbildung): 1. Der Name der Applikation ist Hello, Android. (Er wird

Mehr

Java - Menü und Intent. Leibniz Universität IT Services Anja Aue

Java - Menü und Intent. Leibniz Universität IT Services Anja Aue Java - Menü und Intent Leibniz Universität IT Services Anja Aue Menüs Auswahl von verschiedenen Möglichkeiten mit Hilfe von Menüeinträgen. Menüeinträge können Untermenüs öffnen. Definition des Menüs in

Mehr

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016

Android Apps. Mentoring SS 16. Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016 Android Apps Mentoring SS 16 Nicolas Lehmann, Sönke Schmidt, Alexander Korzec, Diane Hanke, Toni Draßdo 03.06.2016 Wichtige Dateien MainActivity.java activity_main.xml AndroidManifest.xml Die Dateien MainActivity.java,

Mehr

Android - Interaktion mit dem Benutzer. Leibniz Universität IT Services Anja Aue

Android - Interaktion mit dem Benutzer. Leibniz Universität IT Services Anja Aue Android - Interaktion mit dem Benutzer Leibniz Universität IT Services Anja Aue Activity Bildschirmseite in einer APP. Ablage auf einen Stack. Wenn eine Activity gestartet wird, wird diese oben auf den

Mehr

GUI-Programmierung. (5) Das Spielfeld

GUI-Programmierung. (5) Das Spielfeld Mit erreichen von Arbeitsblatt 5 habt ihr es bereits geschafft euer Spiel zu starten. Das ist schon einmal super. Allerdings kann noch nicht viel gespielt werden. Das sollt ihr jetzt ändern. Arbeitsblatt

Mehr

Accounts und Kontakte in Android

Accounts und Kontakte in Android Accounts und Kontakte in Android Die letzten Wochen habe ich daran gearbeitet, die Kontakte der AddressTable von Leonardo und mir ins Android Adressbuch zu bringen. Dazu habe ich die AddressManagement-Applikation

Mehr

Einführung in Android. 22. Oktober 2014

Einführung in Android. 22. Oktober 2014 Einführung in Android 22. Oktober 2014 Was ist Android? Software für mobile Geräte: Betriebssystem Middleware Kernanwendungen Android SDK: Tools und APIs zur Entwicklung von Anwendungen auf der Android-Plattform

Mehr

Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org

Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org Naviki GPS-Anwendungsentwicklung für Mobiltelefone www.naviki.org Fachhochschule Münster Labor für Software Engineering luzar@fh-muenster.de www.naviki.org 1 Naviki die Idee www.naviki.org 2 Wie funktioniert

Mehr

Java - Menüs und Fragmente. Leibniz Universität IT Services Anja Aue

Java - Menüs und Fragmente. Leibniz Universität IT Services Anja Aue Java - Menüs und Fragmente Leibniz Universität IT Services Anja Aue Menüs Auswahl von verschiedenen Möglichkeiten mit Hilfe von Menüeinträgen. Menüeinträge können Untermenüs öffnen. Definition in einer

Mehr

Android Einführung Fragments Android Kurs Stufe 2 (Orangegurt)

Android Einführung Fragments Android Kurs Stufe 2 (Orangegurt) Android Kurs Stufe 2 (Orangegurt) Inhaltsverzeichnis 1 Fragments... 2 2 Der Life Cycle eines Fragments... 2 3 Die Supportlibrary oder das Problem mit der Version... 3 4 Aufbau der Layouts... 4 5 OnClickListener...

Mehr

Mobile App Development

Mobile App Development Mobile App Development - Graphische Oberflächen - Graphische Oberflächen Oberflächenbeschreibung in XML layout Dateien in res/layout LayoutInflater: Erstellung von Java-View-Objekten aus der XML-Definition

Mehr

Mobile App Development. - Activities -

Mobile App Development. - Activities - Mobile App Development - Activities - Inhalt Activity Lifecycle Erstellen Starten & Stoppen Spezielle Activities Ac3vi3es Ac3vi3es Definition Eine Aktivität repräsentiert eine Interaktion mit einem Benutzer

Mehr

Android - Layout einer Benutzeroberfläche. Leibniz Universität IT Services Anja Aue

Android - Layout einer Benutzeroberfläche. Leibniz Universität IT Services Anja Aue Android - Layout einer Benutzeroberfläche Leibniz Universität IT Services Anja Aue Hinweise zur Gestaltung der Bildschirmseite Eine Bildschirmseite sollte eine Aufgabe abbilden. Auf einer Bildschirmseite

Mehr

1 Ein erstes Beispiel

1 Ein erstes Beispiel 3 1 Ein erstes Beispiel In diesem Abschnitt werden wir ein erstes Android-Programm erstellen. Es dient dem schnellen Einstieg in die Programmierung von Android. Dabei handelt es sich um ein Programm zur

Mehr

Software Entwicklung 1. Das Android Framework zur Entwicklung von Apps. Bibliotheken Frameworks. Framework. Annette Bieniusa / Peter Zeller

Software Entwicklung 1. Das Android Framework zur Entwicklung von Apps. Bibliotheken Frameworks. Framework. Annette Bieniusa / Peter Zeller Software Entwicklung 1 Annette Bieniusa / Peter Zeller Das Android Framework zur Entwicklung von Apps AG Softech FB Informatik TU Kaiserslautern Bieniusa/Zeller Software Entwicklung 1 2/ 46 Frameworks

Mehr

Tutorial. Programmierung einer Android-Applikation Notizzettel. Teil 2

Tutorial. Programmierung einer Android-Applikation Notizzettel. Teil 2 Tutorial Programmierung einer Android-Applikation Notizzettel Teil 2 Autor: Oliver Matle Datum: April 2014, Version 1.0 Autor: Oliver Matle, www.matletarium.de Seite 1 von 23 Inhaltsverzeichnis Kapitel

Mehr

Inhaltsverzeichnis. Apps für Android entwickeln

Inhaltsverzeichnis. Apps für Android entwickeln Inhaltsverzeichnis zu Apps für Android entwickeln von Jan Tittel und Jochen Baumann ISBN (Buch): 978-3-446-43191-1 ISBN (E-Book): 978-3-446-43315-1 Weitere Informationen und Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-43191-1

Mehr

Android-Ergänzungen. Programmieren in Java

Android-Ergänzungen. Programmieren in Java Android-Ergänzungen zu Programmieren in Java von Fritz Jobst ISBN 978-3-446-41771-7 Weitere Informationen und Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-41771-7 sowie im Buchhandel Carl

Mehr

App-Entwicklung für Android

App-Entwicklung für Android App-Entwicklung für Android XML / Layouts Hochschule Darmstadt WS15/16 1 Inhalt XML Layouts Layouttypen Dimensions View Element Designs Farben Strings 2 XML XML ist eine Meta-Sprache zur Festlegung der

Mehr

5.5 Schaltflächen und Menüs

5.5 Schaltflächen und Menüs 68 5 Oberflächengestaltung Texte definieren Um die Verweise auf Ressourcen aufzulösen, definieren wir die Texte in der Datei /res/values/strings.xml. Dort legen wir die folgenden Einträge an:

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

Android: Navigation Drawer

Android: Navigation Drawer Prof. Dr. Carsten Vogt,, Feb. 2015 Carsten Vogt,, 2015. Android: Navigation Drawer Prof. Dr. Carsten Vogt Prof. Dr. Carsten Vogt,, Feb. 2015 Carsten Vogt,, 2015. Android: Navigation Drawer 1.) Aussehen

Mehr

Android Programmierung. Studiengang MI

Android Programmierung. Studiengang MI Android Programmierung mit Java Studiengang MI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel.

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

4. Software-Komponenten in Android

4. Software-Komponenten in Android 4. Software-Kompponenten in Android Lernziele 4. Software-Komponenten in Android Themen/Lernziele Intents: Explizite und implizite Intents Intent-Filter Intent-Resolution Sub-Activities Broadcast Intents

Mehr

Listing- und Abbildungsverzeichnis

Listing- und Abbildungsverzeichnis Hochschule München Fakultät 07 Informatik und Mathematik Seminararbeit Android GUI Entwicklung mit Native Java Verfasser: Stefan Haupt Matrikelnummer: 06479910 Fach: Aktuelle Technologien verteilter Java

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

(3) Button-Klick & Texteingabe

(3) Button-Klick & Texteingabe Nachdem ihr jetzt Buttons und ein Eingabefeld hinzugefügt habt, wollt ihr sie sicherlich auch benutzen können und festlegen, was bei einem Klick oder Eintrag passieren soll! Dazu taucht ihr nun in die

Mehr

2. Hintergrundverarbeitung in Android: Services und Notifications

2. Hintergrundverarbeitung in Android: Services und Notifications 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht 2. Hintergrundverarbeitung in Android: Services und Notifications Übersicht: In Mobis 1: Threads; hier genauerer Blick auf Services

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

1 Der Einstieg in Java für Android

1 Der Einstieg in Java für Android 1 1 Der Einstieg in Java für Android Diese Ergänzung zum Buch Programmieren in Java will Ihnen dabei helfen, erste Programme für Smartphones der Android Plattform von Google zu erstellen und diese Programme

Mehr

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik

Kapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

Leseprobe. »Hallo Android!Sensoren und GPSKontakte und Organizer« Inhalt. Index. Der Autor. Android 5 Apps entwickeln mit Android Studio

Leseprobe. »Hallo Android!Sensoren und GPSKontakte und Organizer« Inhalt. Index. Der Autor. Android 5 Apps entwickeln mit Android Studio Wissen, wie s geht. Leseprobe Mithilfe dieser Leseprobe programmieren Sie Ihre erste Android-App. Darüber hinaus erklärt Ihnen Thomas Künneth, wie Sie die Smartphone-Sensoren ansteuern sowie Termine und

Mehr

FSBaSc 2007 BE1. Android Umrechner A-UM. Version Datum Beschreibung, Bemerkung Name oder Rolle Erstellung Dokument Holger Schindler

FSBaSc 2007 BE1. Android Umrechner A-UM. Version Datum Beschreibung, Bemerkung Name oder Rolle Erstellung Dokument Holger Schindler FFHS Fernfachhochschule Schweiz FSBaSc 2007 BE1 Prototyp A-UM Klassifizierung * Status ** Projektname Projektabkürzung Projektleiter Auftraggeber Autor Bearbeitende * Nicht klassifiziert, Intern, Vertraulich

Mehr

Softwareentwicklungsprozess im Praktikum. 25. April 2013

Softwareentwicklungsprozess im Praktikum. 25. April 2013 Softwareentwicklungsprozess im Praktikum 25. April 2013 Agile Softwareentwicklung Eine agile Methodik stellt die beteiligten Menschen in den Mittelpunkt und versucht die Kommunikation und Zusammenarbeit

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

Einrichten eines News-Systems in Typo3

Einrichten eines News-Systems in Typo3 Einrichten eines News-Systems in Typo3 Generelles: tt_news ist eine der beliebtesten Erweiterungen für Typo3 und wir bereits auf vielen Sites Vorarlberger Schulen verwendet: Beispiele: http://www.vobs.at/hsl

Mehr

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

Mehr

Android Settings Dialog Android Kurs Stufe 2 (Orangegurt)

Android Settings Dialog Android Kurs Stufe 2 (Orangegurt) Android Kurs Stufe 2 (Orangegurt) Inhaltsverzeichnis 1 Settings Dialog... 2 2 Der Grundgedanke... 2 3 Das erste Beispiel... 3 3.1 Das Layout der MainActivity... 3 3.2 Die Settings Activity... 3 3.3 Das

Mehr

Matthias Furtmüller, Stefan Haselböck. Android

Matthias Furtmüller, Stefan Haselböck. Android Matthias Furtmüller, Stefan Haselböck Android Grundlagen, Entwicklungsumgebung, wichtige Konzepte und Bibliotheken, Unit Testing unter Android, Simulator, Deployment Inhaltsverzeichnis 1 Entwicklungsumgebung,

Mehr

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

Mehr

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT?

SWT. -The Standard Widget Toolkit- Inhaltsverzeichnis. Thomas Wilhelm SWT. 1. Was ist SWT? Java -The Standard Widget Toolkit- Inhaltsverzeichnis 1. Was ist? - Vorteile von - Nachteile von 2. Vorbereitungen für 3. Das erste Programm in 4. Widgets und Styleparameter 5. - Layouts Was ist ein Widget?

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine

Mehr

Inhaltsverzeichnis. Heiko Mosemann, Matthias Kose. Android. Anwendungen für das Handy-Betriebssystem erfolgreich programmieren ISBN: 978-3-446-41728-1

Inhaltsverzeichnis. Heiko Mosemann, Matthias Kose. Android. Anwendungen für das Handy-Betriebssystem erfolgreich programmieren ISBN: 978-3-446-41728-1 Heiko Mosemann, Matthias Kose Android Anwendungen für das Handy-Betriebssystem erfolgreich programmieren ISBN: 978-3-446-41728-1 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41728-1

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Definition eigener Views

Definition eigener Views Definition eigener Views Prinzipielle Ansätze: Spezialisierung eines Widgets bei Nutzung der vorhandenen Darstellungsmöglichkeiten z.b. TextView zur formatierten Ausgabe von Fließkommazahlen Layoutdefinition

Mehr

Definition eigener Views

Definition eigener Views Definition eigener Views Prinzipielle Ansätze: Spezialisierung eines Widgets bei Nutzung der vorhandenen Darstellungsmöglichkeiten z.b. TextView zur formatierten Ausgabe von Fließkommazahlen Layoutdefinition

Mehr

Kapitel 2 Hallo Android!

Kapitel 2 Hallo Android! Kapitel 2 Hallo Android! 2 Die erste eigene App ist schneller fertig, als Sie vielleicht glauben. Dieses Kapitel führt Sie in leicht nachvollziehbaren Schritten zum Ziel. Seit vielen Jahrzenten ist es

Mehr

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Installation des edu- sharing Plug- Ins für Moodle

Installation des edu- sharing Plug- Ins für Moodle Installation des edu- sharing Plug- Ins für Moodle [edu-sharing Team] [Dieses Dokument beschreibt die Installation und Konfiguration des edu-sharing Plug-Ins für das LMS Moodle.] edu- sharing / metaventis

Mehr

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor();

/** Main-Methode erzeugt einen neuen Editor zum Testen */ public static void main(string[] args) { new Editor(); Bereich: Grafische Benutzeroberflächen (UI), Events (2) Editor Package: de.dhbwka.java.exercise.ui.editor Klasse: Editor Aufgabenstellung: Schreiben Sie einen kleinen Texteditor mit Swing! Keine Panik,

Mehr

Heiko Mosemann Matthias Kose. Android. Anwendungen für das Handy-Betriebssystem erfolgreich programmieren HANSER

Heiko Mosemann Matthias Kose. Android. Anwendungen für das Handy-Betriebssystem erfolgreich programmieren HANSER Heiko Mosemann Matthias Kose Android Anwendungen für das Handy-Betriebssystem erfolgreich programmieren HANSER Inhaltsverzeichnis 1 Android stellt sich vor 1 1.1 Warum Java? ' 2 1.2 Einschränkungen 3 1.3

Mehr

Programmierkonzepte von Android am Beispiel

Programmierkonzepte von Android am Beispiel Programmierkonzepte von Android am Beispiel Dominik Gruntz, Jörg Pleumann Android ist eine Open-Source-Plattform fur mobile Gerate. In JavaSPEKTRUM wurde schon ein Uberblick uber Android gegeben. In diesem

Mehr

Szenario 3: Service mit erweiterter Schnittstelle

Szenario 3: Service mit erweiterter Schnittstelle 2. Hintergrundverarbeitung in Android: Services und Notifications Szenarien für lokale Services Szenario 3: Service mit erweiterter Schnittstelle Ein Service bietet zusätzliche Methoden an, über die sich

Mehr

Software Engineering II

Software Engineering II Software Engineering II Codegenerierung für den SmartIO Editor mit der Modeling Workflow Engine Wintersemester 10/111 Fachgebiet Software Engineering Albert Zündorf / Wiederholung Bisher im Laufe des Semesters

Mehr

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler

Programmieren für mobile Endgeräte SS 2013/2014. Dozenten: Patrick Förster, Michael Hasseler Programmieren für mobile Endgeräte SS 2013/2014 Programmieren für mobile Endgeräte 2 Intents Activities werden von Objekten der Klasse android.content.intent gestartet Unterscheidung in explizite und implizite

Mehr