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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ü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

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

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

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

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

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

Geldautomaten-App. ÄNDERUNGSDATUM Thu May 31 2012 ERSTELLER Team "UI Konzeption" (Michael Schultes, Andreas Zeitler)

Geldautomaten-App. ÄNDERUNGSDATUM Thu May 31 2012 ERSTELLER Team UI Konzeption (Michael Schultes, Andreas Zeitler) -App ÄNDERUNGSDATUM ERSTELLER DATEINAME geldautomaten-app BESCHREIBUNG Screen-Mockups und Screen-Flow VERSIONSGESCHICHTE Freitag, 11. Mai 2012: erster Version Montag, 28. Mai 2012: finales UI Design und

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

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

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

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

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

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

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

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

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

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

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

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

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

Endanwender Handbuch

Endanwender Handbuch Endanwender Handbuch INHALTSVERZEICHNIS Vorwort...3 Frontend und Backend...3 Das Dashboard...4 Profil Bearbeiten...6 Inhalte Verwalten...6 Seiten...6 Seite verfassen...7 Papierkorb...11 Werbebanner...11

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

Android Umgebung einrichten Android Kurs Stufe 1 (Gelbgurt)

Android Umgebung einrichten Android Kurs Stufe 1 (Gelbgurt) Android Kurs Stufe 1 (Gelbgurt) Inhaltsverzeichnis 1 Einleitung... 2 2 Kursaufbau... 2 3 Aufbau der Entwicklungs-Infrastruktur... 3 4 Installation der Entwicklungsumgebung... 3 5 Grundgedanken... 4 6 HelloWorld

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

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

DirectSmile CrossMedia und Salesforce

DirectSmile CrossMedia und Salesforce DirectSmile DirectSmile CrossMedia und Salesforce Anleitung 2014 Salesforce und DirectSmile Cross Media Salesforce und DirectSmile Cross Media... 2 1.1 Einführung... 3 1.2 Ein Benutzerkonto einrichten...

Mehr

Handbuch TweetMeetsMage

Handbuch TweetMeetsMage Handbuch TweetMeetsMage für Version 0.1.0 Handbuch Version 0.1 Zuletzt geändert 21.01.2012 Inhaltsverzeichnis 1 Einleitung... 3 1.1 Voraussetzungen... 3 1.2 Funktionsübersicht... 3 2 Installation... 4

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

Performance Tuning mit @enterprise

Performance Tuning mit @enterprise @enterprise Kunden-Forum 2005 Performance Tuning mit @enterprise Herbert Groiss Groiss Informatics GmbH, 2005 Inhalt Datenbank RMI JAVA API HTTP Konfiguration Analyse Groiss Informatics GmbH, 2005 2 Datenbank

Mehr

Einrichtung des NVS Calender-Google-Sync-Servers. Installation des NVS Calender-Google-Sync Servers (Bei Neuinstallation)

Einrichtung des NVS Calender-Google-Sync-Servers. Installation des NVS Calender-Google-Sync Servers (Bei Neuinstallation) Einrichtung des NVS Calender-Google-Sync-Servers Folgende Aktionen werden in dieser Dokumentation beschrieben und sind zur Installation und Konfiguration des NVS Calender-Google-Sync-Servers notwendig.

Mehr

5 Das Löschen, Verschieben oder Erstellen ganzer Seiten

5 Das Löschen, Verschieben oder Erstellen ganzer Seiten 5 Das Löschen, Verschieben oder Erstellen ganzer Seiten Inhaltsverzeichnis 5 Das Löschen, Verschieben oder Erstellen ganzer Seiten 1 Vorbemerkung.......................................... 1 5.1 Schritt

Mehr

WICHTIG!: Speichern Sie die Backup Datei außerhalb Safe and itunes. Für weitere Infos schauen Sie bitte unter Safe Backup erstellen.

WICHTIG!: Speichern Sie die Backup Datei außerhalb Safe and itunes. Für weitere Infos schauen Sie bitte unter Safe Backup erstellen. Safe Anleitung Safe erlaubt Ihnen Ihre sensiblen Daten zu organisieren und zu speichern. Sie können beliebige Kategorien zur Organisation Ihrer Daten erstellen. Wir bieten Ihnen vordefinierte Vorlagen

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

Apps-Entwicklung mit Netbeans

Apps-Entwicklung mit Netbeans JDroid mit Netbeans Seite 1 Apps-Entwicklung mit Netbeans Version 2.2, 30. April 2013 Vorbereitungen: 1. JDK SE neuste Version installieren, (http://www.oracle.com/technetwork/java/javase/downloads/index.html)

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck

ATB Ausbildung Technische Berufe Ausbildungszentrum Klybeck W-LAN einrichten Access Point Konfiguration Diese Anleitung gilt für den Linksys WAP54G. Übersicht W-LAN einrichten... 1 Access Point Konfiguration... 1 Übersicht... 1 Vorbereitung... 1 Verbindung aufnehmen...

Mehr

APPS FÜR ANDROID ENTWICKELN

APPS FÜR ANDROID ENTWICKELN jan TITTEL jochen BAUMANN ELL N H C S IEG T S N I E APPS FÜR ANDROID ENTWICKELN AM BEISPIEL EINER REALEN APP Inhalt 1 Einführung.............................................. 1 1.1 Die Android-Plattform.................................................

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

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

Email Programm Email - Program Outlook Express

Email Programm Email - Program Outlook Express Email - Program Outlook Express A. Outlook Express Outlook Express Icon anticken = öffnen Man befindet sich im "Posteingang" 1.) "Senden/E" anticken (Will man nur emails abholen, kann man bei der Markierung

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

1. Wireless Switching... 2. 1.1 Einleitung... 2. 1.2 Voraussetzungen... 2. 1.3 Konfiguration... 2. 2. Wireless Switch Konfiguration...

1. Wireless Switching... 2. 1.1 Einleitung... 2. 1.2 Voraussetzungen... 2. 1.3 Konfiguration... 2. 2. Wireless Switch Konfiguration... Inhaltsverzeichnis 1. Wireless Switching... 2 1.1 Einleitung... 2 1.2 Voraussetzungen... 2 1.3 Konfiguration... 2 2. Wireless Switch Konfiguration... 3 2.1 Zugriff auf den Switch... 3 2.2 IP Adresse ändern...

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

1 Lizenzkey 2 1.1. Wo finde ich den Lizenzkey? 2 1.2. Lizenzkey hochladen 2. 2. Nameserver einrichten 4

1 Lizenzkey 2 1.1. Wo finde ich den Lizenzkey? 2 1.2. Lizenzkey hochladen 2. 2. Nameserver einrichten 4 Inhalt: Seite 1 Lizenzkey 2 1.1. Wo finde ich den Lizenzkey? 2 1.2. Lizenzkey hochladen 2 2. Nameserver einrichten 4 Seite 1 1. Lizenzkey 1.1. Wo finde ich den Lizenzkey? Wichtig ist für das Anlegen von

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

Mehr

Entwickeln einer eigenen App

Entwickeln einer eigenen App Entwickeln einer eigenen App Nicht nur auf der Hardware Seite unseres Android-zu-Seriell Wandlers sollte alles so einfach wie möglich sein, sondern auch auf der Software Seite. Da der Tunnel durch ADB

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

mehr funktionen, mehr e-commerce:

mehr funktionen, mehr e-commerce: mehr funktionen, mehr e-commerce: xt:commerce plugin Search Tag Cloud xt:commerce Plugin search tag cloud Wonach suchen Ihre Kunden? Nicht nur für andere Nutzer ist es interessant, welche Artikel Ihre

Mehr

. TYPO3-Plug-in u:cris

. TYPO3-Plug-in u:cris . TYPO3-Plug-in u:cris Zentraler Informatikdienst der Universität Wien Stand: Jänner 2014 TYPO3-Version 4.5 Dieses Handbuch ist eine Übersicht zum Einsatz des TYPO3-Plug-ins u:cris. Naturgemäß würde die

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ

Objektorientierte Programmierung. Objektorientierte Programmierung. Klasse. Objekt. Beispiel: Sportfest1. Methode. Eine Einführung mit BlueJ Objektorientierte Programmierung Objektorientierte Programmierung Eine Einführung mit BlueJ stellt die Daten, ihre Struktur und ihre Beziehungen zueinander in den Vordergrund. Weniger im Blickpunkt: die

Mehr

Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet)

Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet) Android-Apps ein komplexes Beispiel (Google-Maps und GPS-Daten, Listen, SD-Kartenzugriff, Activities mit Rückgabewerten und Web-Browser/Internet) 2/42 Android Apps: ein komplexes Beispiel Gliederung Vorstellung

Mehr

Anleitung für Klassenlehrkräfte zur

Anleitung für Klassenlehrkräfte zur Seite 1/17!!! WICHTIG!!! Es wird JEDER Klassenlehrkraft empfohlen, die Reihenfolge der Erste Schritte Anleitung genau und vollständig einzuhalten. Meine Kundennummer: Meine Schulnummer: Mein Passwort:

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

WordPress lokal mit Xaamp installieren

WordPress lokal mit Xaamp installieren WordPress lokal mit Xaamp installieren Hallo und willkommen zu einem weiteren Teil der WordPress Serie, in diesem Teil geht es um die Lokale Installation von WordPress mithilfe von Xaamp. Kurz und knapp

Mehr

HTL-Website. TYPO3- Skriptum II. Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig. Qualitätsmanagement

HTL-Website. TYPO3- Skriptum II. Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig. Qualitätsmanagement HTL-Website TYPO3- Skriptum II Autor: RUK Stand: 02.06.2010 Gedruckt am: - Version: V0.1 Status: fertig Qualitätsmanagement Erstellt Geprüft Freigegeben Name RUK Datum 02.06.2010 Unterschrift Inhaltsverzeichnis

Mehr

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.

Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume. Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens

Mehr

Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014. Gültig für Release 1.0.0.0

Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014. Gültig für Release 1.0.0.0 Version 1.0 Erstellt am 12.12.2014 Zuletzt geändert am 17.12.2014 Gültig für Release 1.0.0.0 Inhalt 1 WebPart Site Informationen 3 1.1 Funktionalität 3 1.2 Bereitstellung und Konfiguration 4 2 WebPart

Mehr

Skript zum Kurs Literaturverwaltung mit EndNote - Aufbaukurs Literatur in EndNote organisieren und finden

Skript zum Kurs Literaturverwaltung mit EndNote - Aufbaukurs Literatur in EndNote organisieren und finden Skript zum Kurs Literaturverwaltung mit EndNote - Aufbaukurs Literatur in EndNote organisieren und finden Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung

JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung Universität Bayreuth Lehrstuhl für Angewandte Informatik IV Datenbanken und Informationssysteme Prof. Dr.-Ing. Jablonski JSF Erstellen einer einfachen Bankanwendung mit Kontoübersicht und Überweisung Dipl.

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

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

Konfigurieren einer Caritas- Startseite für Abteilungen

Konfigurieren einer Caritas- Startseite für Abteilungen Konfigurieren einer Caritas- Startseite für Abteilungen Jürgen Eckert Domplatz 3 96049 Bamberg Tel (09 51) 5 02 2 75 Fax (09 51) 5 02 2 71 Mobil (01 79) 3 22 09 33 E-Mail eckert@erzbistum-bamberg.de Im

Mehr

17.2 MS-Access Projekte

17.2 MS-Access Projekte 964 Von MS-Access 2000 zum SQL-Server 17.2 MS-Access Projekte MS-Access-Projekte, die die Dateiendung adp besitzen, werden als Front-End-Anwendung verwendet. Für die Back-End-Seite gibt es mehrere Möglichkeiten.

Mehr

SixCMS 6 Tutorial - Content-Manager. So erfassen Sie Inhalte mit SixCMS

SixCMS 6 Tutorial - Content-Manager. So erfassen Sie Inhalte mit SixCMS SixCMS 6 Tutorial - Content-Manager So erfassen Sie Inhalte mit SixCMS Inhalt Inhalt So erfassen Sie Inhalte mit SixCMS 3 Zu diesem Tutorial 3 Ablageort definieren 5 Content-Container erstellen 6 Einträge

Mehr

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

Mehr

Test mit lokaler XAMPP Oxid Installation

Test mit lokaler XAMPP Oxid Installation Test mit lokaler XAMPP Oxid Installation Hintergrundinformation Die hier gezeigte Lösung benutzt die OXID Version 4.7x. OXID lässt sich mit dieser Lösung lokal auf dem Windows Rechner installieren. Die

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

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

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

Anleitungen für User der Seite TSV AustriAlpin Fulpmes. So erstellen Sie einen Bericht (Beitrag) auf der TSV-AustriAlpin Fulpmes Homepage.

Anleitungen für User der Seite TSV AustriAlpin Fulpmes. So erstellen Sie einen Bericht (Beitrag) auf der TSV-AustriAlpin Fulpmes Homepage. So erstellen Sie einen Bericht (Beitrag) auf der TSV-AustriAlpin Fulpmes Homepage. Seite 1 Walter Mayerhofer 2012 1.) ANMELDUNG Melden Sie sich mit Ihrem Benutzernamen und Passwort an. Als allererstes

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 Organisatorisches Anmelden im Web: ZIV Lehre Anmelden Anwesenheitsliste Anwesenheitsschein bei 75% Anwesenheit Allgemeine

Mehr

inviu NFC-tracker für Android Funktionsweise und Bedienung

inviu NFC-tracker für Android Funktionsweise und Bedienung inviu NFC-tracker für Android Funktionsweise und Bedienung 1 Inhaltsverzeichnis inviu NFC-tracker...1 1 Inhaltsverzeichnis...1 2 Installation...2 3 Einrichtung im Webportal inviu pro...2 3.1 Benannte Positionen

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

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