Android Entwicklung

News | Updates | Apps | Hacking | Development

In Android Honeycomb wurden erstmals Fragments vorgestellt. Mit Fragments lassen sich Activitys parallel auf einem Tablet steuern.Durch Fragments wurden auch die altbekannten Dialoge ersetzt, nämlich durch DialogFragments. In diesem Beitrag möchte ich aufzeigen, wie DialogFragments mittels der v4 support library funktionieren.Die v4 support library wird dazu benutzt, um ältere Android-Versionen zu unterstützen (<= Honeycomb). Das nachfolgende Beispiel zeigt ein einfaches edit dialog und gibt das Ergebnis zu der aufrufenden Activity weiter.

Das Layout

Zuerst erstellen wir das Layout für das dialog und nennen es wie folgt: fragment_edit_name.xml

[important] Das verwenden des Attributs android:imeOptions=”actionDone” zusammen mit android:inputType=”text” lässt den Done-Key anstatt des Enter-Buttons zeigen. [/important]

Dialog Code

Die Klasse dialog stammt von DialogFragment ab. Da wir jedoch noch die Kompatibilität für die älteren Android-Versionen hinzufügen möchten, benötigen wir das v4 support library.

Dialog anzeigen

Jetzt benötigen wir noch ein wenig Code um das Dialogfeld zu zeigen.Nach dem starten öffnet sich sofort das Dialogfeld in dessen man seinen Namen eingeben kann. Danach wird der eingegebene Name in einem Toast eingeblendet.

Da wir für den oberen Code die v4 support library verwenden,schreiben wir Activity extends FragmentActivity. Deshalb auch der Aufruf der Methode getSupportFragmentManager(), anstatt getFragmentManager().

DialgFragment erweitern

Für die bessere Benutzerführung fügen wir die Methode mEditText.requestFocus()hinzu. Damit erreichen wir, dass die Tastatur aufspringt, wenn der Benutzer auf das Input-Feld klickt bzw. tippt. Zwar hätten wir das direkt in unserem Layout-Manifest regeln können – jedoch ist eine Steuerung über den Programmcode komfortabler, da z.B. ein Aufruf der Methode onFocusChangeListener innerhalb von onCreateView() eines Fragments die Tastatur nicht anzeigen könnte. Daher ist es ratsam, das oben genannte Beispiel zu verwenden.

Ein Kommentar bisher.

  1. Lisa says:

    Es hat mich viel geholfen Danke :)