Eigene Controls erstellen - Bei Android möglich/vorgesehen?

  • Hallo,


    bislang habe ich "nur" an verschiedenen iOS und WP Projekten gearbeitet und entwickle nun meine erste Android App. Hierbei konnte ich bislang nicht herausfinden, wie man eigene Controls erstellen kann, bzw. ob dies überhaupt möglich/vorgesehen ist.


    Ich meine z.B. etwas wie den DatePicker. Von anderen Plattformen kenne ich dies als eigenständiges Control, dass sich komplett selbst um seine Anzeige uns seien Daten kümmert.


    Unter WP wäre das z.B. so:
    - Picker ist eigenes Control.
    - Auf irgendeiner Seite/View liegt also ein Picker-Button
    - Klickt der Nutzer den Picker-Button an, geht kein Click-Event an die Seite sondern, die Picker-Button Klasse kümmert sich selbst um die Anzeige des eigentlichen Picker Dialogs.
    - Der Nutzer wählt das Datum aus, der Dialog wird geschlossen und die Seite erfährt z.B. über ein OnDateChanged Event, dass ein neues Datum gewählt wurde.



    Unter Android sehe ich bislang nur folgenden anderen Weg:
    - Um einen DatePicker anzuzeigen platziert man auf einer Seite/Fragement/Activity irgendein klickbares Element.
    - Seite/Fragement/Activity reagiert auf den Klick und erstellt ein neues DialogFragment und zeigt diese an.
    - Das DatePickerFragment benachrichtigt die aufrufende Seite über onDateSet über das gewählte Datum.



    Während das Zurückliefern des Datums in beiden Fällen ähnlich verläuft ist der Anfang, also das Erstellen des Pickers, gänzlich unterschiedlich. Im ersten Fall ist die Funktionalität in einer eigenen Control/Klasse gekapselt die überall wiederverwenden kann. Wie genau der Picker angezeigt wird, ist der Seite die den Picker enthält komplett egal. Diese empfängt am Ende nur das Ergebnis. Ob dazwischen ein Fragment, eine Activity oder irgendetwas anderes angezeigt wurde ist nicht wichtig. Durch die Kapselung kann derselbe Code an beliebig vielen Stellen genutzt werden und muss nur einmal geschrieben werden.


    Im zweiten Fall muss sich jede Seite/Activity die einen DatePicker anzeigen will selber dessen Erstellung und Anzeige kümmern. Der gleiche Code muss immer und immer wieder geschrieben werden.



    Der erste Fall ist also deutlich effizienter. Aber ist das bei Android überhaupt möglich so vorzugehen? Woher sollte eine DatePicker Klasse die notwendigen Informationen haben um ein Fragment oder eine Activity selbständig anzeigen zu können? Geht das also gar nicht?

  • That's Java…


    Die Leute waren wohl der Meinung es sei total toll, wenn jede Activity selbst ihren DatePicker konfigurieren kann oder muss.


    Ganz verstehe ich Dein Problem im speziellen Fall des DatePicker jedoch nicht.
    Das Ding kommt doch vorkonfiguriert hoch. Entweder als DatePicker in Deinem eigenen Layout oder als DatePickerDialog über Dein aktuelles Layout.


    Im Übrigen ist das auch der von Android vorgeschlagene Weg:
    pack Dein eigenes Control in diesem Fall in einen eigenen Dialog und ruf nur diesen Dialog auf, wann immer Du Dein Control brauchst.

    Je mehr Käse, desto mehr Löcher.
    Je mehr Löcher, desto weniger Käse.
    Daraus folgt: je mehr Käse, desto weniger Käse.


    »Dies ist ein Forum. Schreibt Eure Fragen in das Forum, nicht per PN!«

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!