Android Settings Dialog Android Kurs Stufe 2 (Orangegurt)

Größe: px
Ab Seite anzeigen:

Download "Android Settings Dialog Android Kurs Stufe 2 (Orangegurt)"

Transkript

1 Android Kurs Stufe 2 (Orangegurt) Inhaltsverzeichnis 1 Settings Dialog Der Grundgedanke Das erste Beispiel Das Layout der MainActivity Die Settings Activity Das Settings Fragment Das Preferences Layout Der Code der MainActivity Das SharedPreferences Objekt Auslesen der Werte Ändern der Werte Einfügen neuer Werte Listener für geänderte Werte Die einzelnen Preference Elemente Grundeinstellungen Enable / Disable von Settings CheckBoxPreference SwitchPreference ListPreference EditTextPreference Submenü Lizenz Haftung AnPr_Android_Course_2_3_Settings_v01.docx Seite 1

2 1 Settings Dialog Wir haben uns nun die wesentlichen Kenntnisse angeeignet, Android Apps zu designen. Wir können Elemente dem User präsentieren und Informationen wie Klicks und Text vom User abfragen. Wie ihr als Android Nutzer aber wisst, gibt es bei fast allen Apps die Möglichkeit, Einstellungen vorzunehmen dies geschieht üblicherweise über die Settings. In diesem Dokument wollen wir uns die grundlegenden Eigenschaften des Settings Dialogs ansehen und wie wir auf die Einstellungswerte in den Activities zugreifen können. Bevor wir aber beginnen, noch ein kurzer Hinweis zum Thema API Version. Bei den Settings haben wir zwei Optionen entweder wir gehen auf ein API Level < 11, dann müssen wir auf Methoden zurückgreifen, welche als deprecated geflagged wurden, oder man geht auf API Level >= 11, dann hat man die Möglichkeit auf neue Methoden zu gehen, welche nicht als deprecated eingestuft wurden. Im Wesentlichen hat man sich entschieden, die gesamte Struktur der Settings in Zukunft auf Fragments aufzubauen, und das bis dato übliche Verfahren, das Settings Designt direkt in einer Activity laufen zu lassen langsam aus den Apps herauszudrängen. Nach langem Überlegen habe ich mich nun dafür entschieden, mich auf die neue Technologie zu konzentrieren und die Version ab API Level 11 zu erklären, da die Anzahl der alten Geräte langsam nicht mehr relevant ist. Leider muss man hier diese Entscheidung treffen, da die Support Library das Thema PreferenceFragment nicht berücksichtigt. Wer trotzdem sich die old school Variante ansehen möchte, sei auf folgenden Link verwiesen: In diesem Dokument werden wir uns mit den grundlegendsten Techniken der Settings (oder auch Preferences ) beschäftigen. Die weiterführenden Themen in diesem Zusammenhang werden wir auf einen späteren Zeitpunkt schieben, da wir sonst den Orangegurt überladen würden. Noch ein Hinweis zum Thema Design Guidelines. Android hat ein paar sinnvolle Anmerkungen zusammengefasst, wie man Setting Dialoge ansprechend designen soll. Diese findet ihr hier: 2 Der Grundgedanke Der Dialog, in dem die Settings vorgenommen werden, ist erst mal nichts anderes, als eine Activity. Wir werden uns aufgrund der Oben genannten Gründe auf die Activity mit den Fragments konzentrieren wir verwenden PreferenceFragment. Der Grund, warum wir nicht einfach normale Fragments verwenden können liegt in der Tatsache, dass die Preferences in einem gesonderten File abgelegt werden, welches von überall unserer App gelesen werden kann. Hinzu kommt, dass dieses File beim Neustart unserer App neu gelesen wird und somit die alten Einstellungen wieder hergestellt werden. Wir müssen also unsere Einstellungen nicht jedes Mal auf s Neue eingeben. Wie das File heißt und wo es liegt ist für uns als Entwickler erst mal nicht wichtig Android wird sich um alles kümmern. Da das Design für die Preferences immer einheitlich ist, wurde das File in dem die gewünschten Settingswerte enthalten sind und das File, welches für das Layout zuständig ist, zusammengefasst in ein einziges XML File. Wir werden uns in diesem Dokument im Wesentlichen die Möglichkeiten ansehen, welche verschiedenen Einstellungen wir in diesem File machen können. Auch der Zugriff auf die Settings sollte bei allen Apps einigermaßen einheitlich sein. Üblicherweise wird über das OptionsMenu der Dialog zum Einstellen der Settings aufgerufen. Auch dieses Thema werden wir hier behandeln wenngleich wir das OptionsMenu erst mal nur für die Settings betrachten und nicht für die weiteren Möglichkeiten. Auch das werden wir auf später verschieben. Seite 2

3 3 Das erste Beispiel Wir werden nun eine kleine App schreiben, bei der wir einen Settings Dialog realisieren. Vorerst werden wir die Funktionalität recht schmal halten. Wir werden in der MainActivity lediglich ein TextView Element haben, welches anzeigt, ob in den Settings unsere einzige vorhandene Checkbox selektiert ist, oder nicht. 3.1 Das Layout der MainActivity Wir sind inzwischen ja geübt, neue Projekte zu erzeugen. Wir schaffen ein Projekt namens SettingsTest und fügen dort eine MainActivity ein. Diese beinhaltet lediglich eine TextView. Hier das Layout unserer MainActivity (activity_main.xml): <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".mainactivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerhorizontal="true" android:layout_centervertical="true" /> </RelativeLayout> Wie ihr seht ist das nichts Weltbewegendes. Wir haben dem TextView auch nur einen Leerstring zugewiesen (der natürlich in strings.xml auch eingetragen werden muss),da wir den Inhalt unseres TextViews aus den Settings übernehmen müssen. 3.2 Die Settings Activity Wie wir Oben beschrieben haben, werden wir unsere Settings in einer eigenen Activity einbetten, welche das PreferenceFragment beherbergt. Um diese Activity zu erzeugen, müssen wir eine neue Klasse erstellen und sie von der Acitivty Klasse ableiten. Hierbei rufen wir in der oncreate Methode oncreate der Superklasse auf und instanziieren unser Fragment MySettingsFragment als zentraler Inhalt (android.r.id.content das ist eine StandardID für den Inhalt). Das Ganze passiert wie bei Fragments üblich über den FragmentManager (wir erinnern uns wenn wir ab API Level 11 Fragments umsetzen, brauchen wir den getfragmentmanager und nicht den getsupportfragmentmanager): public class MySettingsActivity extends Activity { Seite 3

4 protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); getfragmentmanager().begintransaction().replace( android.r.id.content, new MySettingsFragment()).commit(); Wichtig ist nun noch, dass wir die neue Activity Klasse im Manifest File AnroidManifest.xml registrieren, indem wir im Tag <application> am Ende folgende Konfiguration einfügen: <activity android:name="com.example.settingstest.mysettingsactivity" > </activity> Eclipse wird nun monieren, dass die Klasse MySettingsFragment noch nicht existiert diese werden wir nun nachreichen. 3.3 Das Settings Fragment Der eigentliche Inhalt der Activity wird über ein Fragment dargestellt. Die Besonderheit hier ist, dass wir hier kein normales Fragment verwenden, sondern ein PreferenceFragment. Dieses benötigt kein übliches Layout als Parameter, sondern ein preferneces Layout, welches wir uns im nächsten Kapitel näher ansehen werden. Dort werden wir für unsere Checkbox in dem Preferences Dialog noch einen Namen (eigentlich Key ) festlegen er soll pref_test heißen. Um im Programm später darauf zugreifen zu können definieren wir hier eine Konstante, welche diesen Namen beinhaltet. public class MySettingsFragment extends PreferenceFragment { public static final String KEY_PREF_TEST = "pref_test"; public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); addpreferencesfromresource(r.xml.preferences); 3.4 Das Preferences Layout Üblicherweise wird das Layout unseres PreferencesFragment in einem XML File abgelegt, welches sich im Ordner res/xml befindet und preferences.xml heißt. Wir legen also einen neuen Unterordner unter res an und nennen diesen xml. Hier tragen wir ein leeres XML File ein, welches wir wie folgt editieren: <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/ android"> <CheckBoxPreference android:key="pref_test" android:defaultvalue="true" /> </PreferenceScreen> Seite 4

5 Wir tragen also eine Checkbox ein, welche auf den Key pref_test hört. Weiterhin geben wir der Checkbox noch einen Titel das wird der groß geschriebene Text im Settings Dialog sein und eine Summary, was der kleinere Text sein wird. Der Titel bei uns soll My Settings sein und die Summary Do your Settings. Diese Strings müsst ihr natürlich noch in strings.xml eintragen. 3.5 Der Code der MainActivity In der MainActivity lassen wir nun alle Fäden zusammenlaufen. Die oncreate Methode habe ich nicht weiter angepasst das was Eclipse mir eingetragen hat ist OK. Die folgende Methode lassen wir zwar auch unangetastet, ich möchte sie aber an dieser Stelle mal kurz vorstellen. Die oncreateoptionsmenu ist die Methode, welche das Standardmenü erscheinen lässt. Diese Funktion wird bei vielen Android Geräten über die Taste links unten, bzw. wenn keine eigene Taste existiert im Bildschirm unterhalb des ActionMenü rechts oben gestartet. In diesem Standardmenü befindet sich im Regelfall der Settings Eintrag. Wenn diese Methode also existiert, dann können wir mit dem MenuInflater das Standardmenü auf unseren Bildschirm zaubern. public boolean oncreateoptionsmenu(menu menu) { getmenuinflater().inflate(r.menu.activity_main, menu); return true; Das Layout unseres Menüs finden wir unter res/menu im File activity_main.xml: <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:orderincategory="100" android:showasaction="never" </menu> Die einzelnen Bedeutungen der Einträge werden wir uns zu einem späteren Zeitpunkt ansehen, wichtig an dieser Stelle ist nur, dass wir hier ein Menü erzeugen, welches über den Menübutton zustande kommt. Man kann hier noch einen icon (also eine Grafik) reinhängen. Das ganze Thema Menü werde ich in die nächste Gürtelfarbe reinpacken, da wir hier wieder ein paar Dinge bezüglich API Level 11 beachten müssen und das den Orangegurt sprengen würde. Wer vorher sich schon schlau machen will, sei auf diese Links verwiesen: Jetzt haben wir zwar das (zugegebenermaßen sehr einfache) Layout festgelegt. Nun müssen wir nur noch dafür sorgen, dass das Menü auch angezeigt wird. Das erledigen wir über die Methode onoptionsitem- Selected : public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case R.id.menu_settings: startsettings(); return true; default: return super.onoptionsitemselected(item); Da wir dem Settings Menüeintrag eine ID gegeben haben, können wir identifzieren, über welchen Eintrag die Methode aufgerufen wurde. Üblicherweise packen wir die ganze Funktionalität in eine Switch/Case An- Seite 5

6 weisung hinein, damit wir diesen Teil einfach erweitern können. Um das Settings Menü zu starten, habe ich eine eigene Methode spendiert. Hier starte ich wie sollte es anders sein den Settings Dialog mit Hilfe eines Intents: private void startsettings() { Intent intent = new Intent(); intent.setclass(mainactivity.this, MySettingsActivity.class); startactivity(intent); Nun kommen wir zu der Methode, welche die Settingsinformationen auslesen und in die TextView einbauen soll. Da das Settings Menü unsere MainActivity in den Pausenstatus versetzen wird, können wir davon ausgehen, dass wenn wir aus den Settings wieder rauskommen, die Methode onresume aufgerufen wird. Dies ist also die ideale Stelle, die Settings auszulesen: protected void onresume() { super.onresume(); SharedPreferences sharedpref = PreferenceManager.getDefaultSharedPreferences(this); boolean preftestchecked = sharedpref.getboolean(mysettingsfragment.key_pref_test, false); TextView mytextview = (TextView) findviewbyid(r.id.settingstesttext); mytextview.settext(string.valueof(preftestchecked)); Wir rufen (natürlich) wieder die Methode der Superklasse auf, um die internen Vorgänge zu erlauben. Anschließen holen wir uns die SharedPreferences. Dies ist ein wichtiges Objekt, da es uns ermöglicht die Preferences zu speichern und wieder zu laden. Ich gehe im nächsten Kapitel nochmal kurz auf dieses Objekt ein. Danach hole ich mir die Information, ob die Checkbox in unserem Settings Dialog ausgewählt (checked) ist, oder nicht: SharedPreferences sharedpref = PreferenceManager.getDefaultSharedPreferences(this); boolean preftestchecked = sharedpref.getboolean(mysettingsfragment.key_pref_test, false); Der erste Parameter ist der Key-Wert unseres Settings. Sollten die Settings nicht gefunden worden sein, legen wir noch einen Defaultwert im zweiten Parameter fest ich habe mich hier für false entschieden. Die Information packe ich in eine Boolean Variable, welche ich im Anschluss lediglich in einen String konvertiere und in die TextView hineinschreibe. So, das war es auch schon. Nun können wir die App starten und das Menü aufrufen den Settings Dialog starten und die Checkbox auswählen. Wenn wir die Back Taste drücken sehen wir, dass das false sich nun zu einem true geändert hat. Wenn wir den Vorgang wiederholen und die Checkbox deselektieren, sehen wir wieder ein false. Interessant ist auch, dass wenn wir die App schließen und danach wieder neu starten, der Wert aus dem letzten Lauf der App wiedergefunden wird. Android hat es sich also gemerkt, was wir beim letzten Mal eingestellt haben wir müssen uns also nicht mühsam um irgendwelches Persistieren kümmern! 4 Das SharedPreferences Objekt Wie schon erwähnt, dient das SharedPreferences Objekt dazu, die Statuswerte zu speichern bzw. wieder zu laden. Dabei ist dieses Objekt sehr eng mit unserem PreferenceFragment verknüpft, so dass wir uns nicht um die Details der Persistierung kümmern müssen. Einstellungen im PreferenceFragment werden automatisch in unserem SharedPreferences Objekt und danach im Filesystem abgelegt. Dies kann man zwar mit dem Eintrag PreferenceScreen android:persistent="false" unterbinden, wobei sich dies nicht empfiehlt. Seite 6

7 4.1 Auslesen der Werte Weiterhin ist das SharedPreferences Objekt von jeder Stelle unserer App aufrufbar, da wir es von allen Activities mit Hilfe des PreferenceManager aufrufen können. Ein Aufruf (aus dem vorausgegangenen Kapitel) sieht wie folgt aus: SharedPreferences sharedpref = PreferenceManager.getDefaultSharedPreferences(this); boolean preftestchecked = sharedpref.getboolean(mysettingsfragment.key_pref_test, false); Wichtig ist, dass ihr die einzelnen Keys sauber pflegt und euch eine sinnvolle Namenskonvention überlegt, damit ihr später nicht durcheinander kommt. 4.2 Ändern der Werte Die Werte werden natürlich mit dem Settings Dialog geändert. Es gibt aber auch Möglichkeiten, die Settings programmatisch zu ändern. Da wie bei den Views auch alle XML basierten Elemente in Java Klassen münden, gibt es auch für die einzelnen Preferences Elemente Java Entsprechungen. Wenn wir also unsere Checkbox programmatisch auf true setzen wollen, dann müssen wir lediglich das zugehörige Java Objekt finden und dies auf den gewünschten Wert setzen: CheckBoxPreference checkboxpreftest = (CheckBoxPreference) this.findpreference(mysettingsfragment.key_pref_test); if (checkboxpreftest!= null) { checkboxpreftest.setchecked(true); Wir holen also einfach die Preferences und suchen dort den Preferencewert mit dem gegebenen Key. Wichtig ist, dass die Preferences nur im PreferenceFragment gefunden werden können. Wenn wir von der Activity aus die Settings ändern wollen, können wir mit einem Interface arbeiten, wie wir es bei den normalen Fragments ja bereits gesehen haben. 4.3 Einfügen neuer Werte In dem SharedPreferences Objekt können auch andere Werte abgelegt werden, welche nicht im Settings Dialog eingestellt werden. Dies kann sinnvoll sein, wenn interne Programmstatuswerte nicht verloren gehen dürfen. Hierfür benötigen wir einen Editor für die Preferences. Wir ergänzen unsere Activity wie folgt: public void ondestroy() { super.ondestroy(); SharedPreferences sharedpref = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor myeditor = sharedpref.edit(); myeditor.putstring(key_pref_dyn, "my dynamic value"); myeditor.commit(); Wir erzeugen uns einen Editor, indem wir mit der edit() Methode diesen Editor einer Variablen zuweisen. Dies startet auch automatisch eine Transaktion, welche wir am Ende mit commit() abschließen müssen. Mit Hilfe dieses Editors können wir nun einen neuen Wert eintragen. Ich habe mich für einen Stringwert entschieden, der einen eindeutigen Key-Wert benötigt, den wir in der Activity Klasse festlegen müssen: public static final String KEY_PREF_DYN = "pref_dynamic"; In der onresume Methode ergänzen wir unseren Code nun wie folgt wir lesen nach dem Checkbox Wert auch unseren neuen dynamischen Wert ein und schreiben anschließend nicht nur den boolschen Wert in unser Textfeld, sondern auch noch unseren dynamischen Settingswert: Seite 7

8 String prefdynvalue = sharedpref.getstring(key_pref_dyn, "empty"); mytextview.settext(string.valueof(preftestchecked) + " " + prefdynvalue); Wie ihr sehen werdet, wird unser TextView Element beim nächsten Starten unserer App den Text false empty anzeigen (sofern die Checkbox zuletzt deselektiert war), da wir den dynamischen Settingswert noch nicht eingetragen haben und somit der Defaultwert greift. Wenn wir allerdings die App beenden, wird on- Destroy aufgerufen und der dynamische Wert in die Settings eingetragen. Beim nächsten App Start wird nun der Wert gefunden und das TextView Element wird anzeigen false my dynamic value. Wir können folgende einfache Datentypen in unser SharedPreferences Objekt eintragen: Datentyp: boolean float int long String Set<String> Methode: putboolean(key, value); putfloat(key, value); putint(key, value); putlong(key, value); putstring(key, value); putstringset(key, value); Set ist eine Sammlung von Strings, welche wie folgt instanziiert wird: Set<String> set = new HashSet<String>(); Im set können nun mit add Werte eingetragen werden, welche wir als entsprechende Liste im SharedPreferences Objekt speichern und wieder herauslesen können. Beim Lesen können wir aus dem HashSet ein Array erzeugen. 4.4 Listener für geänderte Werte Der letzte Punkt für unser SharedPreference Objekt ist der OnSharedPreferenceChangeListener. Dieser wird aktiv, wenn ein Setting geändert wurde. Folgende Funktionalität soll dies verdeutlichen wenn unsere Checkbox selektiert ist, soll ein anderer Summarytext angezeigt werden, als wenn sie nicht selektiert ist. Wir definieren zuerst unsere Strings im strings.xml: <string name="pref_test_summ">check for displaying true</string> <string name="pref_test_summ_checked"> Uncheck for displaying false</string> Danach implementieren wir den Listener in unser MySettingsFragment: public class MySettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener { public void onsharedpreferencechanged(sharedpreferences sharedpreferences, String key) { if (key.equals(key_pref_test)) { setsummarytext( (CheckBoxPreference)findPreference(KEY_PREF_TEST)); Die Methode onsharedpreferencechanged wird wie immer von Eclipse per Mausklick implementiert. Wir ergänzen lediglich den Code, der für den Tausch des SummaryTexts zuständig ist. Diesen habe ich in eine eigene Methode eingefügt, welche sich um die Anzeige des richtigen Texts kümmert. Damit wir auch beim Seite 8

9 erstmaligen Aufruf des Settings Dialogs den richtigen Text zu sehen bekommen, rufen wir diese Methode auch beim oncreate auf: public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); addpreferencesfromresource(r.xml.preferences); setsummarytext((checkboxpreference)findpreference(key_pref_test)); Die Methode ist relativ einfach gestrickt und sollte uns keine Probleme bereiten: private void setsummarytext(checkboxpreference mycheckbox) { if (mycheckbox!= null) { if (mycheckbox.ischecked()){ mycheckbox.setsummary(r.string.pref_test_summ_checked); else { mycheckbox.setsummary(r.string.pref_test_summ); Es wird zuerst geprüft, ob der Aufrufer das Preference Element auch wirklich gefunden hat. Anschließend wird geprüft, ob die Checkbox selektiert ist und demensprechend wird der richtige String als Summary eingesetzt. Was nun noch fehlt ist, den Listener zu registrieren. Da wir diesen Listener wirklich nur dann brauchen, wenn wir aktiv mit dem Settings Dialog arbeiten, registrieren wir ihn in der onresume Methode und entfernen ihn wieder in der onpause Methode: public void onresume() { super.onresume(); getpreferencescreen().getsharedpreferences(). registeronsharedpreferencechangelistener(this); public void onpause() { super.onpause(); getpreferencescreen().getsharedpreferences(). unregisteronsharedpreferencechangelistener(this); 5 Die einzelnen Preference Elemente Nun haben wir die wichtigsten Elemente kennengelernt, um die Settings in unser Programm einzubauen, wobei wir als Beispiel eine Checkbox verwendet haben. Wir wollen uns in den nächsten Kapiteln eine Auswahl an möglichen anderen Settings Elementen ansehen und die wichtigsten Einstellungen. 5.1 Grundeinstellungen Zuerst kommt natürlich der key Eintrag, ohne den wir keinen eindeutigen Zugriff auf unsere Preferences haben. Es empfiehlt sich auch für jeden Settings Eintrag einen Default Value zu setzen, was im Prinzip der Anfangszustand ist. Weiterhin kennt jedes Element zumindest die beiden Werte Title und Summary. Title ist die im großen Text geschriebene Überschrift und die Summary die etwas kleiner geschriebene Zusammenfassung unterhalb der Überschrift. Seite 9

10 Den Code dazu haben wir weiter Oben schon kennengelernt der Vollständigkeit halber hier nochmal die XML Definition im preferences.xml File: <CheckBoxPreference android:key="pref_test" android:defaultvalue="true" /> Zusätzlich ist es manchmal noch sinnvoll eine Grafik mit einzubinden. Dies erfolgt über das icon Attribut: Der Einfachheit halber habe ich hier das Drawable ic_launcher genommen, da es standardmäßig von Eclipse bereits eingefügt wurde. 5.2 Enable / Disable von Settings Settingelemente können aktiviert und deaktiviert sein. Dies kann man mit zweierlei Methoden ermöglichen. Zuerst die einfachere die Abhängigkeiten. Es gibt gewisse Settings, welche nur dann sinnvoll gesetzt werden können, wen ein anderes Setting auf true steht. Zur Verdeutlichung ergänzen wir unser preferences.xml File wie folgt: <CheckBoxPreference android:key="pref_test" android:defaultvalue="true" <CheckBoxPreference android:key="pref_test2" android:defaultvalue="true" android:dependency="pref_test"/> Wichtig ist hier der Eintrag android:dependency="pref_test". Wir geben hier an, dass es eine Abhängigkeit zwischen dem pref_test2 und dem pref_test gibt und zwar wird dies dergestalt interpretiert, dass pref_test2 nur dann aktiv ist, wenn pref_test ausgewählt ist. Sobalt pref_test keinen Haken mehr hat, ist pref_test2 inaktiv. Eine zweite Möglichkeit ist es, die Elemente programmatisch zu aktivieren, bzw. deaktivieren. Wie wir eine Referenz auf die Checkbox bekommen haben wir in den Oberen Kapiteln gesehen. Deaktivieren können wir das Element wie folgt: mycheckbox.setenabled(false); Wenn wir den Status auf Aktiv setzen wollen, dann müssen wir als Parameter lediglich true setzen. Wir können auch programmatisch feststellen, ob das Element aktiv ist: mycheckbox.isenabled() 5.3 CheckBoxPreference Wie wir in den oberen Beispielen schon gesehen haben, ist die CheckBoxPreference recht einfach umsetzbar. Den XML Code werde ich an dieser Stelle nicht nochmal wiederholen, einfach im vorausgehenden Kapitel nochmal reinschauen. Die wichtigsten Java Methoden haben wir auch schon gesehen. Hier möchte ich jedoch die zwei wichtigsten kurz ansprechen: Seite 10

11 Methode:.isChecked().setChecked(value) Beschreibung: Liefert true zurück, wenn die Checkbox selektiert ist, sonst false Wenn value auf true steht, wird die Checkbox selektiert, wenn value auf false steht, wird sie deselektiert. Alle weiteren Methoden können unter folgenden Links ersehen werden: SwitchPreference Die SwitchPreference ist prinzipiell nichts anderes als eine Checkbox, nur dass sie optisch anders dargestellt ist. In den Java Klassen kann man dies daran erkennen, dass beide eine Ableitung der Klasse TwoStatePreference sind. Der Code sieht entsprechend einfach aus: <SwitchPreference android:key="pref_test3" android:defaultvalue="true" /> Die beiden Elemente switchtexton und switchtextoff sind optional. Wenn sie nicht vorhanden sind, wird der Text des Schiebers On und Off sein. Mit diesen beiden Elementen können wir den Text sprachlich individualisieren. Die Methoden der Java Klasse sind identisch mit denen der Checkbox: Methode:.isChecked().setChecked(value) Beschreibung: Liefert true zurück, wenn die Checkbox selektiert ist, sonst false Wenn value auf true steht, wird die Checkbox selektiert, wenn value auf false steht, wird sie deselektiert. Auch hier findet ihr die notwendigen zusätzlichen Infos im Netz: Alle weiteren Methoden können unter folgenden Links ersehen werden: Wer es ganz indiviuell haben möchte, kann sich die View, welche mit dem Switch verbunden ist auch individuell zusammenbauen und über das Attribut android:layout auch laden. Da dies hier aber zu weit führen würde, muss ich an dieser Stelle lediglich auf die API verweisen. 5.5 ListPreference Ein auch recht häufig anzutreffendes Element bei den Settings ist die ListPreference. Dies ist im Wesentlichen ein Feld von Radio Buttons. Dieses öffnet sich als Subdialog und listet alle vorher definierten Werte auf. Diese müssen aber zuvor definiert werden. Dies geschieht in einem String Array, welche auch in einem Array festgelegt werden können. Hierzu erzeugen wir im Ordner res/values das File array.xml und schreiben folgendes rein: <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="pref_list_example_disp"> <item>wert A</item> <item>wert B</item> Seite 11

12 <item>wert C</item> </string-array> <string-array name="pref_list_example_values"> <item>0</item> <item>1</item> <item>2</item> </string-array> </resources> Wir haben somit zwei verschiedene String Arrays geschaffen. Das erste ist für die Anzeige der Werte im Dialog (wenn wir mehrsprachig arbeiten, so muss dieser Bereich entsprechend in die sprachspezifischen Unterordner wir erinnern uns an den Gelbgurt). Das zweite Array steht für die Werte, welche beim Auswählen hinterlegt werden. Dies muss für eine saubere Sprachunabhängigkeit gewährleistet sein! Weiterhin müssen wir nun unser strings.xml File mit folgenden Werten ergänzen: <string name="pref_list_default">2</string> <string name="pref_list_title">select values</string> <string name="pref_list_summ">click for opening the dialog</string> Hier finden wir die Werte für unseren Titel und der Summary. Was wir hier auch hinterlegen ist der Defaultwert, welcher nicht der Anzeigewert, sondern der hinterlegte, sprachunabhängige Wert sein muss. In unserem preferences.xml File fügen wir das Element nun ein;: <ListPreference android:key="pref_list_example" Wie wir sehen, fügen wir neben den üblichen Attributen nun die Einträge als Referenzen auf unsere neu erzeugten Arrays ein dies gilt für unser Anzeigewerte (android:entries), als auch für unsere hinterlegten Werte (android:entryvalues). Der sich öffnende Dialog kann noch weiter konfiguriert werden, wobei ich an dieser Stelle hierauf nicht weiter eingehen möchte. Hier noch die wichtigsten Methoden: Methode: Beschreibung:.getEntryValues() Liefert ein Array von CharSequence Werten, welche die Werte des entryvalues Array beinhaltet..findindexofvalue(value) Gibt die Indexposition des gegebenen Wertes (entsprechend des Arrays aus getentryvalues)..getvalue().setvalue(value) Gibt den Wert aus, der gerade ausgewählt ist. Setzt den Wert, der gerade ausgewählt ist auf value, wobei dieser Teil des Arrays aus getentryvalues sein muss. Alle weiteren Infos, wie immer im Netz: Seite 12

13 5.6 EditTextPreference Das letzte Element in dieser Reihe welches ich besprechen möchte ist das EditTextPreference Element. Es ist zwar relativ selten, dass man wirklich Texteingaben machen möchte, aber hin und wieder kommt man hier nicht drum rum. Prinzipiell ist das EditTextPreference Feld genauso zu nutzen wie eine Kombination eines EditText Views und einer normalen Preference View. Um dies zu verdeutlichen setzen wir mal ein Edit- TextPreference um, welches nur Ziffern akzeptiert. Zuerst erweitern wir die strings.xml: <string name="pref_text_default">15</string> <string name="pref_text_title">enter number</string> <string name="pref_text_summ">click for opening the dialog</string> Danach fügen wir in preferences.xml folgenden Eintrag ein: <EditTextPreference android:key="pref_edittext_test" android:inputtype="number"/> Wie wir sehen, können wir auch hier einen inputtype vorgeben. Die Javamethoden sind ebenfalls keine Überraschung. Methode:.getText().setText(value) Beschreibung: Liefert den eingegebenen Text zurück. Belegt den eingegebenen Text neu mit dem Wert value. Weitere Details findet ihr unter Submenü Wenn zu viele Settings in einem Dialog vorgesehen sind empfiehlt es sich, diesen aufzuteilen. Die einfachste Möglichkeit bietet das Einsetzen eines weiteren PreferenceScreens. Dieser wird lediglich in den bereits existierenden PreferenceScreen eingebettet: <?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <CheckBoxPreference android:key="pref_test" android:defaultvalue="true"/> <PreferenceScreen android:key="pref_subscreen" <SwitchPreference android:key="pref_test3" </PreferenceScreen> </PreferenceScreen> Seite 13

14 Wie ihr seht, bekommt der innere PreferenceScreen auch einen Titel und eine Summary. Ansonsten wird der innere PreferencesScreen genauso gehandhabt, wie der äußere es können beliebige Elemente eingefügt werden. Wenn ihr die App startet, dann werdet ihr die altbekannte Checkbox sehen und einen weiteren Eintrag. Wenn ihr auf diesen Klickt, dann öffnet sich der Subscreen und ihr seht dort die inneren Elemente (in unserem Fall nur das SwitchPreferences Element. Seite 14

15 6 Lizenz Diese(s) Werk bzw. Inhalt von Maik Aicher (www.codeconcert.de) steht unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Eclipse and the Eclipse Logo are trademarks of Eclipse Foundation, Inc. "Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners." 7 Haftung Ich übernehme keinerlei Haftung für die Richtigkeit der hier gemachten Angaben. Sollten Fehler in dem Dokument enthalten sein, würde ich mich über eine kurze Info unter freuen. Seite 15

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

Android Theading Android Kurs Stufe 2 (Orangegurt)

Android Theading Android Kurs Stufe 2 (Orangegurt) Android Kurs Stufe 2 (Orangegurt) Inhaltsverzeichnis 1 Threading... 2 2 Umzusetzende Funktionalität... 3 3 Lösung mit eigenem Thread... 4 3.1 Die einfache Thread Lösung... 4 3.2 Thread Lösung mit eigener

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

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

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

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

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 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

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

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

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

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

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

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

Android-Apps weitere Möglichkeiten

Android-Apps weitere Möglichkeiten Android-Apps weitere Möglichkeiten 2/20 weitere Möglichkeiten Speichern in der Sandbox OnTouchListener Senden und Empfangen von SMS Anbindung von Datenbanken Der Beschleunigungssensor Übung 3/20 Speichern

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

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

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

Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems

Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Android Persistenz Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 3 besprechen (inkl. Repetition) Die wichtigsten

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

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

Erweiterung für Premium Auszeichnung

Erweiterung für Premium Auszeichnung Anforderungen Beliebige Inhalte sollen im System als Premium Inhalt gekennzeichnet werden können Premium Inhalte sollen weiterhin für unberechtigte Benutzer sichtbar sein, allerdings nur ein bestimmter

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

Eclipse 3.0 (Windows)

Eclipse 3.0 (Windows) Eclipse Seite 1 Eclipse 3.0 (Windows) 1. Eclipse installieren Eclipse kann man von der Webseite http://www.eclipse.org/downloads/index.php herunterladen. Eclipse ist für Windows, Mac und Linux erhältlich.

Mehr

MySQL Installation. AnPr

MySQL Installation. AnPr Name Klasse Datum 1 Allgemeiner Aufbau Relationale Datenbank Management Systeme (RDBMS) werden im Regelfall als Service installiert. Der Zugriff kann über mehrere Kanäle durchgeführt werden, wobei im Regelfall

Mehr

Arbeiten mit Objekten

Arbeiten mit Objekten Seite 31 von 48 Arbeiten mit Objekten Ein Objekt kann eine neue Webseite mit Unterseiten enthalten, die in der Navigation aufgelistet werden können; andererseits gibt es je nach Website Objekte, die dynamisch

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

Android Processes & Services

Android Processes & Services Android Processes & Services Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Ziele heute Arbeitsblatt 4 besprechen (inkl. Repetition)

Mehr

Alerts für Microsoft CRM 4.0

Alerts für Microsoft CRM 4.0 Alerts für Microsoft CRM 4.0 Benutzerhandbuch Der Inhalt des Dokuments ist Änderungen vorbehalten. Microsoft und Microsoft CRM sind registrierte Markenzeichen von Microsoft Inc. Alle weiteren erwähnten

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

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

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

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

14.4.2016. Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt 14.4.2016 Technische Hochschule Georg Agricola WORKSHOP TEIL 3 IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt Inhaltsverzeichnis 1. Kurzfassung zur Projekterstellung... 2 2. Morse-Tabelle...

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Outlook 2000 Thema - Archivierung

Outlook 2000 Thema - Archivierung interne Schulungsunterlagen Outlook 2000 Thema - Inhaltsverzeichnis 1. Allgemein... 3 2. Grundeinstellungen für die Auto in Outlook... 3 3. Auto für die Postfach-Ordner einstellen... 4 4. Manuelles Archivieren

Mehr

PRAXISBUTLER ANPASSUNG DER VORLAGEN

PRAXISBUTLER ANPASSUNG DER VORLAGEN Praxisbutler Anpassung der Vorlagen 1 PRAXISBUTLER ANPASSUNG DER VORLAGEN Die Vorlagen werden hauptsächlich in den Bereichen Klienten und Fakturierung benutzt. Die Anpassung dieser Vorlagen ist wichtig,

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6

Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011. Übungen zur Vorlesung Informatik II, Blatt 6 WS 2011/12 Fakultät Angewandte Informatik Programmierung verteilter Systeme 28.11.2011 Prof. Dr. Bernhard Bauer Übungen zur Vorlesung Informatik II, Blatt 6 Abgabe: Montag, 05.12.2011, 12.00 Uhr, Informatik

Mehr

orgexterndoc31 Inhaltsverzeichnis Einleitung... 1 Installation... 3 Grundinstallation... 3 Installation pro Arbeitsplatz... 6 Lizenzierung... 7 Benutzung Einzeldokument... 9 1. Möglichkeit:... 9 2. Möglichkeit...

Mehr

Quickstart IMS Custom-Player Pro

Quickstart IMS Custom-Player Pro Quickstart IMS Custom-Player Pro Jedes IMS-MDN (Media Delivery Network) Konto bietet zum Abspielen von Flash Videos den Standard IMS Custom Player. Dieser Player wird von uns auf einem hoch performanten

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

OP 2005: Änderungen Mailimport

OP 2005: Änderungen Mailimport OP 2005: Änderungen Mailimport 02.01.2008 Dokumentation Original auf SharePoint Doku zu OP 2005 JT-Benutzerkonfiguration - EMail In dieser Registerkarte können Sie die E-Mail-Konfiguration, des Benutzers

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

Praktikum Software Engineering

Praktikum Software Engineering Praktikum Software Engineering Verwendung von Enterprise Architect Pascal Weber, David Kulicke KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum in der Helmholtz-Gemeinschaft

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

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

WCF Services in InfoPath 2010 nutzen

WCF Services in InfoPath 2010 nutzen WCF Services in InfoPath 2010 nutzen Abstract Gerade wenn man schreibend von InfoPath aus auf eine SQL-Server Datenbank zugreifen will, kommt man quasi um einen Web Service nicht herum. In diesem Post

Mehr

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane

Tutorial04: Swing: Erstellen eines JFrames mit einem JSplitPane Hochschule Harz Programmierung2 Tutorial 04: FB Automatisierung und Informatik Dipl.-Inf., Dipl.-Ing. (FH) M. Wilhelm Programmierung 2 für MI / WI Thema: Swing, JSplitPane und I/O Versuchsziele Kenntnisse

Mehr

Favoriten speichern und verwalten im Internetexplorer 7.x

Favoriten speichern und verwalten im Internetexplorer 7.x Favoriten speichern und verwalten im Internetexplorer 7.x Klaus-Dieter Käser Andreas-Hofer-Str. 53 79111 Freiburg Fon: +49-761-292 43 48 Fax: +49-761-292 43 46 www.computerschule-freiburg.de kurse@computerschule-freiburg.de

Mehr

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications Windows 8 Systemsteuerung > Programme > Windows Features aktivieren / deaktivieren > Im Verzeichnisbaum

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

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK Einführung Dieses Hands-on-Lab (HOL) macht den Leser mit dem Intel XDK und dem Zugriff auf Web Services vertraut. Der Web Service

Mehr

PubMan Import - Benutzer Dokumentation

PubMan Import - Benutzer Dokumentation MaibornWolff et al GmbH Theresienhöhe 13 80339 München PubMan Import - Benutzer Dokumentation Version:1.0 Datum: 13.08.13 Status: Final Index 1 EINLEITUNG... 3 2 INSTALLATION... 4 3 KONFIGURATION... 5

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Java Einführung Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

Mehr

Einkaufslisten verwalten. Tipps & Tricks

Einkaufslisten verwalten. Tipps & Tricks Tipps & Tricks INHALT SEITE 1.1 Grundlegende Informationen 3 1.2 Einkaufslisten erstellen 4 1.3 Artikel zu einer bestehenden Einkaufsliste hinzufügen 9 1.4 Mit einer Einkaufslisten einkaufen 12 1.4.1 Alle

Mehr

Sortieren des Zubehörs (Content)

Sortieren des Zubehörs (Content) Dies ist eine Anleitung der Künstlerin und Autorin Efyriel von Tierstein (kurz: EvT) Die Anleitung ist nur für den privaten Gebrauch gedacht und EvT übernimmt keine Garantien dafür, dass eine Arbeit nach

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

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 Informationen aus der Datenbank lesen Klasse SQLiteDatabase enthält die Methode query(..) 1. Parameter: Tabellenname

Mehr

Überleben im Funkloch

Überleben im Funkloch Überleben im Funkloch Offlinefähige Apps für Android entwickeln Christian Janz (@c_janz ) christian.janz@bridging-it.de Christian Janz Consultant im Bereich Softwareentwicklung Java/JEE bei Bridging IT

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Installieren und Einrichten von VirtualBox für TAPPS (V1.0)

Installieren und Einrichten von VirtualBox für TAPPS (V1.0) Installieren und Einrichten von VirtualBox für TAPPS (V1.0) 1 Einleitung... 2 2 Download und Installation... 2 3 Einrichten von VirtualBox am Beispiel Windows XP... 7 4 Einrichten von Windows XP... 26

Mehr

DS-WIN-NET ANLEITUNG. Version: 1.1. Pionier der Zahnarzt-Software. Seit 1986.

DS-WIN-NET ANLEITUNG. Version: 1.1. Pionier der Zahnarzt-Software. Seit 1986. DS-WIN-NET ANLEITUNG Pionier der Zahnarzt-Software. Seit 1986. 1 Inhaltsverzeichnis 1. Vorwort 1 2. Den vorhandenen Webserver für DS-Win-NET anpassen 2 3. Aktivierung des DS-Win-NET im DS-Win-Termin 3

Mehr

Folgende Aktionen müssen für ein neues Fotoalbum ausgeführt werden:

Folgende Aktionen müssen für ein neues Fotoalbum ausgeführt werden: Hier kannst du ein neues Fotoalbum erstellen. Das Fotoalbum-Modul lässt das Administrieren direkt auf der Homepage (Frontend) nicht zu, deshalb musst du dich nochmals mit deinem User und Passwort an der

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

Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27

Über den Autor 7. Teil I Los geht s mit Java für die Android-Entwicklung 25. Kapitel 1 Alles über Java und Android 27 Inhaltsverzeichnis Über den Autor 7 Einführung 19 Wie Sie dieses Buch verwenden 19 In diesem Buch verwendete Konventionen 19 Was Sie nicht lesen müssen 20 Törichte Voraussetzungen 20 Wie dieses Buch aufgebaut

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

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

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel ralf_gitzel@hotmail.de

JSP JSTL. JEE Vorlesung Teil 6. Ralf Gitzel ralf_gitzel@hotmail.de JSP JSTL JEE Vorlesung Teil 6 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Wiederholung / Vertiefung JSTL Grundlagen JSTL Basisbefehle Templates über JSTL

Mehr

Neues Projekt anlegen... 2. Neue Position anlegen... 2. Position in Statikdokument einfügen... 3. Titelblatt und Vorbemerkungen einfügen...

Neues Projekt anlegen... 2. Neue Position anlegen... 2. Position in Statikdokument einfügen... 3. Titelblatt und Vorbemerkungen einfügen... FL-Manager: Kurze beispielhafte Einweisung In dieser Kurzanleitung lernen Sie die wichtigsten Funktionen und Abläufe kennen. Weitere Erläuterungen finden Sie in der Dokumentation FLManager.pdf Neues Projekt

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

bnsyncservice Installation und Konfiguration bnnetserverdienst Voraussetzungen: KWP Informationssysteme GmbH Technische Dokumentation

bnsyncservice Installation und Konfiguration bnnetserverdienst Voraussetzungen: KWP Informationssysteme GmbH Technische Dokumentation bnsyncservice Voraussetzungen: Tobit DAVID Version 12, DVWIN32: 12.00a.4147, DVAPI: 12.00a.0363 Exchange Server (Microsoft Online Services) Grundsätzlich wird von Seiten KWP ausschließlich die CLOUD-Lösung

Mehr

Terminland Free / Terminland Easy Schnellstart

Terminland Free / Terminland Easy Schnellstart Dokumentation: V 10.04.0 Datum: 22.12.2014 Inhaltsverzeichnis 1. Einführung... 3 2. Hilfe... 3 3. Online-Terminbuchung... 4 3.1. Aufruf der Online-Terminbuchung... 4 3.2. Aufruf des internen Terminmanagers...

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

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift.

Um ein solches Dokument zu erzeugen, muss eine Serienbriefvorlage in Word erstellt werden, das auf die von BüroWARE erstellte Datei zugreift. Briefe Schreiben - Arbeiten mit Word-Steuerformaten Ab der Version 5.1 stellt die BüroWARE über die Word-Steuerformate eine einfache Methode dar, Briefe sowie Serienbriefe mit Hilfe der Korrespondenzverwaltung

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

Fork Leitfaden. BibApp Android

Fork Leitfaden. BibApp Android Fork Leitfaden BibApp Android letzte Aktualisierung: 24. April 2013 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung 2 2 Eclipse Projekt 2 3 Abhängigkeiten 2 4 Konfiguration 3 4.0.1 Paketname...............................

Mehr

NovaTec. Konfigurationsanleitung RMCS

NovaTec. Konfigurationsanleitung RMCS NovaTec Konfigurationsanleitung RMCS Version 1.1 / Stand: 09.09.2011 Änderungen vorbehalten copyright: 2011 by NovaTec Kommunikationstechnik GmbH Technologiepark 9 33100 Paderborn Germany Inhaltsverzeichnis

Mehr

NetMan Desktop Manager Quick-Start-Guide

NetMan Desktop Manager Quick-Start-Guide NetMan Desktop Manager Quick-Start-Guide In diesem Dokument wird die Installation von NetMan Desktop Manager beschrieben. Beachten Sie, dass hier nur ein Standard-Installationsszenario beschrieben wird.

Mehr

ESU LokProgrammer Software

ESU LokProgrammer Software ESU LokProgrammer Software An Hand der LokProgrammer Software Version 4.4.3 versuche ich hier mal ein paar wichtige Funktionen zu beschreiben. Diese Übersicht ersetzt nicht die original Anleitung von ESU!

Mehr

4 Codierung nach Viginere (Lösung)

4 Codierung nach Viginere (Lösung) Kapitel 4 Codierung nach Viginere (Lösung) Seite 1/14 4 Codierung nach Viginere (Lösung) 4.1 Einführung Blaise de Vigenère lebte von 1523 bis 1596 in Frankreich und war nach dem Studium bei verschiedenen

Mehr

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0 Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben

Mehr

Erste Schritte mit LimeSurvey Pädagogische Hochschule Heidelberg

Erste Schritte mit LimeSurvey Pädagogische Hochschule Heidelberg 1 Dieses Script ist als Schnellstart gedacht, um das Prinzip von LimeSurvey zu verstehen. Zahlreiche Optionen stehen zur individuellen Erstellung von Umfragen zur Verfügung ein ausführliches Benutzerhandbuch

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Roadtrip Plugin. Dokumentation

Roadtrip Plugin. Dokumentation Roadtrip Plugin Dokumentation Inhaltsverzeichnis Beschreibung... 3 Installation... 3 Konfiguration der Dienste... 3 Erläuterung...3 Twitter...3 Instagram... 5 Konfiguration der User...5 Eingabe... 5 Aktivierung...

Mehr

Android Java Specifics / Basic IO

Android Java Specifics / Basic IO Dalvik virtual machine Registermaschine anstelle einer Stackmaschine Optimiert für geringen Speicherverbrauch Umwandlung von.class Dateien in.dex-format mit Hilfe von dx Jedes Programm läuft als eigener

Mehr

PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03

PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03 PHP Einsteiger Tutorial Kapitel 4: Ein Email Kontaktformular in PHP Version 1.0 letzte Änderung: 2005-02-03 Bei dem vierten Teil geht es um etwas praktisches: ein Emailformular, dass man auf der eigenen

Mehr

JDroidLib mit Eclipse (Mac/Linux/Windows)

JDroidLib mit Eclipse (Mac/Linux/Windows) JDroidLib mit Eclipse (Mac/Linux/Windows) Version 1.3, 25. März 2013 (Unter Windows besser die ADT-Bundle Version installieren, siehe entsprechende Anleitung) Vorbereitungen: 1. JDK SE neuste Version installieren,

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

5.5.8 Öffentliche und private Eigenschaften

5.5.8 Öffentliche und private Eigenschaften 5.5.8 Öffentliche und private Eigenschaften Schnittstellen vs. Implementierungen: Schnittstelle einer Klasse beschreibt, was eine Klasse leistet und wie sie benutzt werden kann, ohne dass ihre Implementierung

Mehr

Der Website-Generator

Der Website-Generator Der Website-Generator Der Website-Generator im Privatbereich gibt Ihnen die Möglichkeit, schnell eine eigene Website in einheitlichem Layout zu erstellen. In Klassen, Gruppen und Institutionen können auch

Mehr

Dokumentation: Balanced Scorecard

Dokumentation: Balanced Scorecard Dokumentation: Balanced Scorecard 1. Einleitung Eine Balanced Scorecard (BSC) ist eine kennzahlenbasierte Managementmethode, welche sowohl Visionen als auch Strategien eines Unternehmens und relevante

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

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Installation von sonogdt

Installation von sonogdt Installation von sonogdt Installieren Sie sonogdt am Server bzw. Hauptrechner Ihrer Praxis in eine lokale Festplattenpartition, keinesfalls in eine Freigabe oder ein verbundenes Laufwerk. Behalten Sie

Mehr

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01

OPC-Server VM OPC. Anleitung. Installation, Konfiguration, Verwendung. Version 1.01 Installation, Konfiguration, Verwendung Version 1.01 Seite 2 von 20 OPC-Server VM OPC Revision Version Erstellt am Versionsnummer Bemerkung 1.00 26.07.2013 Erstellung 1.01 05.11.2013 2.14 - Reiter der

Mehr