1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Baum-Widget in Android

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von quiddix, 20.02.2010.

  1. quiddix, 20.02.2010 #1
    quiddix

    quiddix Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    63
    Erhaltene Danke:
    1
    Registriert seit:
    09.02.2010
    Hallo,

    ich bin gerade am Planen meiner ersten Applikation für Android und mache einige GUI-Entwürfe.

    Für die Kernkomponente der Software, sollte die GUI Datenelemente in einem Baum anzeigen können, das heißt einen Vaterknoten mit Beschriftung und mehrere Kind-Datenobjekte.

    Da die Vaterelemente die Kindelemente nur gruppieren sollen und immer voll ausgeklappt sein sollen, habe ich mir Ideen gemacht wie das ganze aussehen kann. Da ich bis jetzt noch kein Android Handy befinde, weiß ich leider nicht welche GUI-Standard-Elemente es gibt und habe auch bei dem android.widget package nichts passendes gefunden.

    Als ich letztens Musik gehört habe, ist mir aufgefallen, dass die Komponente die ich benötige eigentlich genau sein sollte, wie die Musikliste auf meinem IpodTouch.
    [​IMG]

    Die Buchstaben (vater-knoten) gruppieren hier die Musik,Kontakte , ... (Kind-Knoten), trotzdem wird alles in einer gut navigierbaren Liste dargestellt.

    Gibt es ein ähnliches Widget bei Android auch?
     
  2. SeraphimSerapis, 20.02.2010 #2
    SeraphimSerapis

    SeraphimSerapis Android-Guru

    Beiträge:
    3,072
    Erhaltene Danke:
    1,138
    Registriert seit:
    27.02.2009
  3. quiddix, 20.02.2010 #3
    quiddix

    quiddix Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    63
    Erhaltene Danke:
    1
    Registriert seit:
    09.02.2010
    HI,

    hab mir die Klasse jetzt mal angeschaut und ich denke, dass sich das Widget ListView nicht dazu eignet (bitte korrigieren, wenn ich da falsch liege).

    Das besondere bei der Apple Umsetzung ist, dass alle Namen die mit D.. beginnen unter dem Buchstabe D stehen.

    Man könnte jetzt zwar anfangen, in die ListView DummyItems einzufügen, die dann quasi diesen Header erzeugen, aber das wäre relativ unschön.

    Außerdem wäre der Contentprovider bei einem Baum viel einfacher zu implementieren, da ich Klasse A als Vaterelement habe und dann Klasse B als Kindelement.

    Die Apple-Umsetzung stellt also eigentlich einen immer ausgeklappten Baum dar. Was ich aber am besten finde ist, dass die Vaterelemente (z.B. "M") immer zu sehen sind.
    Das heißt wenn ich eine Liste mit 100 M Einträgen habe, dann kann ich diese Liste scrollen aber der Header "M" bleibt so lange angezeigt, bis die ersten Namen mit "N" kommen. Danach wird der Header "M" vom Header "N" verdrängt (schwer zu beschreiben).

    Also falls es noch andere Entwickler hier gibt, wäre es nett ob ihr mir nochmal Hilfe geben könntet ob es so eine ähnliche Klasse gibt. Falls es das nicht gibt, denke ich, dass ich mir so ein Widget selber zusammenstellen werde.

    EDIT:
    Noch eine Frage: Kennt jemand eine Seite, auf der die Widgets die Android anbietet beispielhaft als Screenshot oder Grafik dargestellt sind (ein paar sind ja auf der Android seite aber das sind glaub nur 5-6).

    Danke
     
  4. SeraphimSerapis, 20.02.2010 #4
    SeraphimSerapis

    SeraphimSerapis Android-Guru

    Beiträge:
    3,072
    Erhaltene Danke:
    1,138
    Registriert seit:
    27.02.2009
  5. MichaelS, 20.02.2010 #5
    MichaelS

    MichaelS Fortgeschrittenes Mitglied

    Beiträge:
    370
    Erhaltene Danke:
    51
    Registriert seit:
    14.08.2009
    sowas muss echt nicht sein ;) Die Lösung, die Vorgeschalgen wurde, ist die richtige... Die Listview ist sehr sehr komplex und man kann damit recht schöne Sachen machen ;) Wenn es dir net passt, wie Android arbeitet, musst de es net hier an den Leuten auslassen :D

    Unteranderem gibt es kein Widget, das dir direkt nen TreeNode aufbaut... Aber die Listview kann es trotzdem... Einfach mal ein wenig googeln und schon hat man eine Lösung.

    Gruß
    Michael
     
    SeraphimSerapis bedankt sich.
  6. SeraphimSerapis, 20.02.2010 #6
    SeraphimSerapis

    SeraphimSerapis Android-Guru

    Beiträge:
    3,072
    Erhaltene Danke:
    1,138
    Registriert seit:
    27.02.2009
    Sehe ich genauso - man muss sich eben etwas einarbeiten in die ListView (wie auch die anderen Views bei Android). Und es gibt eben nicht immer einen 100% gleiches Äquivalent zwischen Android und dem iPhone BSD.
    Das ist ja auch vollkommen logisch.

    Gruß Tim
     
  7. garak, 21.02.2010 #7
    garak

    garak Ehrenmitglied

    Beiträge:
    8,270
    Erhaltene Danke:
    4,795
    Registriert seit:
    12.12.2009
    Es gibt ein großes Android Beispiel-Projekt, das kannst du im Emulator ausführen. Dort werden alle Widgets vorgestellt und es lässt sich damit prima heraus finden, welches für das jeweilige Projekt geeignet ist. Das solltest du einmal ausprobieren, da du so wesentlich schneller die unterschiedlichen Möglichkeiten kennen lernen kannst.

    Ganz ohne ein Android-Smartphone zu besitzen. ;)

    Gruß
    Chris
     
  8. quiddix, 21.02.2010 #8
    quiddix

    quiddix Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    63
    Erhaltene Danke:
    1
    Registriert seit:
    09.02.2010
    HI,

    was geht denn hier ab. Der Beitrag von mir war doch keineswegs böse oder sowas gemeint, ich wollte nur wissen, ob vielleicht jemand anders da noch was kennt.

    Ich habe gestern noch ziemlich lange gegoogelt und mittlerweile die Klasse ExpandableListView gefunden.
    Das ist ein Art Baum, vielleicht kann man den ja immer ausgeklappt lassen.

    @garak
    Weiß du eventuell ein Link zu dem Projekt?
     
  9. SeraphimSerapis, 21.02.2010 #9
    SeraphimSerapis

    SeraphimSerapis Android-Guru

    Beiträge:
    3,072
    Erhaltene Danke:
    1,138
    Registriert seit:
    27.02.2009
    Ich bin zwar nicht garak, aber:
    Schau mal in den Ordner von deinem SDK - da sind Beispielprojekte, unter anderem das für verschiedene Views.
    EDIT: Bzw wähl in Eclipse einfach ein Sample Project (Api Demos zB) aus.

    Gruß Tim
     
    Zuletzt bearbeitet: 21.02.2010
  10. garak, 21.02.2010 #10
    garak

    garak Ehrenmitglied

    Beiträge:
    8,270
    Erhaltene Danke:
    4,795
    Registriert seit:
    12.12.2009
    Mit den ListViews sind vielfältige Arten von Listen möglich. Entsprechend der Liste deines Screenshots sind z.B. die Kontakte im Android aufgebaut, wobei die Suche nach den einzelnen Abschnitten wesentlich besser gelöst ist, als das im iPhone der Fall ist. Leider kannst du das nicht im Emulator sehen (ich habe es zumindest noch nicht herausgefunden) sondern nur im richtigen Smartphone.

    Zur Verdeutlichung, welche Listen für deine Problemstellung interessant wären, hier die Screenshots.

    listview1.png listview2.png

    Gruß
    Chris
     
  11. quiddix, 21.02.2010 #11
    quiddix

    quiddix Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    63
    Erhaltene Danke:
    1
    Registriert seit:
    09.02.2010
    Hi,

    die rechte Liste sieht ja klasse aus. Habe mittlerweile im Internet auch einige Code Schnipsel gesehen wie sich das realisieren lässt. Ich denke ich werde nach der Planungsphase nächste Woche eventuell mal anfangen die ersten GUI-Elemente zu designen.

    Vielen Dank für die hilfreichen Antworten
    MFG qx
     

Diese Seite empfehlen