ListView Sections

  • Hallo Forum,


    ich bin noch relativ neu in der Android Programmierung und bin gleich auf das erste Problem gestoßen.
    Ich würde gerne Sections (wie bei iOS) in ein ListView einbauen. Diese findet man auch in der Android Kontakte oder Settings App.


    Im Internet habe ich immer nur experimentelle Vorschläge gefunden.
    Gibt es keine native Funktion, ein ListView in verschiedene Bereiche mit eigenen Überschriften zu unterteilen?


    In meiner äquivalenten iOS App habe ich dafür ein Array, in dem sich wieder Arrays zu den Sections finden.
    Bei Kontakten hätte ich dann ein Array mit 27 Arrays (A bis Z + Sonderzeichen).

  • Moin Vyax,


    also meine Kontakte-App kann das nicht. Aber meine Settings können das.
    Ich selbst musste mir den Kram selbst basteln. Vergleiche hier.


    Allerdings kann man wohl schick mit den Separatoren machen:
    http://bartinger.at/listview-with-sectionsseparators/


    Also was Fertiges sieht eher mau aus.
    Es sei denn, du versuchst das ExpandleListView und schaffst es, ihm das Ein- und Ausklappen zu verbieten

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

  • Hey, ich kenne dich aus dem OS X Entwicklerforum.


    Danke für den Link. Trotzdem gefällt mir das noch nicht komplett.
    Wenn wir gleich mal beim Thema sind, gibt es einen eleganten Weg etwas wie die grouped TableViews in Android zu machen?

  • Das Problem ist, ich habe kein Android Gerät.


    Das Problem ist, dass der Emulator eine Katastrophe ist. Er verhält sich komplett anders als ein Gerät, ist bis zu 10x langsamer und bietet für Sensoren keinerlei simulierten Werte.


    Weiterhin unterscheiden sich die Bedienkonzepte sowie das Look'n'Feel von Android und iOS doch gewaltig.


    Wenn du nicht zufällig total auf Java stehst und dich gern weiterbilden möchtest, solltest du eventuell überlegen das Projekt an einen findigen Android-Entwickler zu übergeben.


    Ansonsten kann es durchaus sinnvoll sein, den UI-Ansatz für Android zu überdenken.
    Brauchst du die Sections dringend? Ist ein Grouped ListView wirklich von Nöten?


    Apps funktionieren besser, wenn sie den Konzepten des OS folgen. Und die Standardkonzepte haben weder Sections noch Gruppen...

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

  • Nochmal zum Thema Virtuelle Maschine.
    Ich habe jetzt eine Jelly Bean in der VM laufen.
    Ich schaffe es aber nicht, sie mit Eclipse zu verbinden.


    Da ich Mac benutze habe ich kein cmd, sondern ein Terminal.
    Auch komme ich nicht in die VirtualBox console, da alle Kombinationen in allen Möglichen Reihenfolgen aus ctrl, alt, hostkey und f1 nicht funktionieren.

  • Also ob du adb jetzt im Terminal, einer Konsole, im cmd oder der PowerShell eingibst macht keinen Unterschied.
    Du solltest nur darauf achten, dass adb in deinen Pfadvariablen existiert.


    Welche Virtual Box Konsole meinst du?
    Der Standard Hostkey ist statt der rechten Control die linke CMD Taste.


    Also hier läuft es. Ich kann nicht behaupten, dass es viel flüssiger läuft. Aber es läuft.
    Und ich kann die Tastatur nutzen und muss nicht mit dem On Screen Dings rumhändeln.
    Deshalb werde ich den noch ein wenig benutzen.

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

  • +hm+
    Also haben die das mit Fragments gelöst statt mit diversen unterschiedlichen Listenebenen.
    Keine Ahnung, wie mir das gefällt. Aber der Ansatz klingt plausibel.

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

  • Weil Fragments Scheiße sind. Immer dieses Nachgefrickel, nur weil man damals™ keinen Bock auf View Controller hatte.
    Naja, dennoch sicherlich besser als irgendwelche Libraries.


    Wie dem auch sei, danke für den Tipp. ^^

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

  • Android <3 hatte das noch nicht, ergo: nachgefrickelt.
    (Immerhin reden wir hier nicht von einem ausgestorbenen System, sondern von über 50% Marktanteil :P
    Die Support Library ändert übrigens nichts daran, dass etwas wie Fragments in Androids ursprünglicher Planung nie vorgesehen war.)


    Scheiße, weil sie dir eine zusätzliche Abhängigkeit in deinen Code schmeißen. Zusätzliche Abhängigkeiten sind scheiße.
    Scheiße, weil sie deine ursprünglichen App-Design-Methoden ad acta legen: nix mehr mit eine Activity pro Screen und gut. Altbewährte Konzepte über Board werfen ist scheiße.


    Es mag durchaus sein, dass du damit noch absolut keine Probleme hattest und sie dir mehrfach geholfen haben.
    Wenn man Integrität und Konsistenz gewöhnt ist, dann kann man aber halt den ein oder anderen Groll dagegen hegen. ^^

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

  • du sagst also weiterentwicklung der plattform android ist schwachsinn?


    was ein schwachsinn!


    Android lebt von der weiterentwicklung.
    Software muss mit der Zeit gehen, und Android ist so gut geschrieben das man sowas dazupacken kann ohne das Probleme auftreten.


    ich mein, hergott viele dinge in html5 gibts in html2 nicht, alles gefrickel oder xD?


    konzepte können nie von anfangan perfekt sein!
    software wird mit der zeit erst besser, sie ist es niemals von beginn an!

  • du sagst also weiterentwicklung der plattform android ist schwachsinn?


    Nein. Ich sage, Software nicht zu Ende durchdacht auf den Markt zu schmeißen ist Schwachsinn.
    Warum gibt es denn Fragments erst ab Android 3.0? Weil man mit Einführung von Android keinen Bock hatte an Tablets zu denken.


    Man musste ganz ganz schnell vor Apple ein Smartphone auf den Markt bringen, nachdem die Kooperation ja gescheitert ist und sich Google an die Netzbetreiber verkauft hat.


    Software muss mit der Zeit gehen, und Android ist so gut geschrieben das man sowas dazupacken kann ohne das Probleme auftreten.


    Das ist es eben nicht. Ich brauche eine Support Library. Mein damals™ für Android 2.3 konzipiertes Programm funktioniert nicht vernünftig auf Android 3.0.
    Eine Tablet-App mit nur einer Activity... So ein Blödsinn.
    Nur leider darf man jetzt Verbiegungen mit der Support Library und sonstigen Dingen anfangen.


    Wie war das mit iOS und der Einführung des iPads? View Controller gab es seit der Beta zu iOS 1.0 Apps für iOS 5 liefen nach Einführung des iPads nahezu ohne weiterführende Anpassungen korrekt auf dem iPad - und zwar so, wie es sich für ein Tablet gehört.


    Übrigens bin ich nach wie vor der Meinung, dass man mit Java keine gute Software schreiben kann - das aber nur am Rande.


    ich mein, hergott viele dinge in html5 gibts in html2 nicht, alles gefrickel oder xD?


    You didn't get it.
    Wie hoch ist die Verbreitung von HTML2 im aktuellen Web verglichen mit HTML 4? (HTML 5 ist meines Wissens immer noch nicht offiziell released.)
    Vermutlich ist der Prozentsatz nicht einmal mit Double darstellbar.


    Android 2.3 ist nach wie vor Marktführer unter den Android Geräten. Google trifft daran natürlich keine Schuld (außer, dass sie sich mit ihrem OS prostituiert haben), doch zeigt es, dass dein Spruch von der Weiterentwicklung nicht stimmen kann. Evolution bedeutet wie bei iOS oder HTML, dass das Alte nach und nach ausstirbt. Allerdings gibt es 4.0 seit ungefähr 12 Monaten und im Februar ist Gingerbread endlich mal unter 50% gelandet.
    Du nennst es Weiterentwicklung? Ich nenne es Stagnation durch Geldgeilheit der Hardwarehersteller.
    (Der Grund, warum ich immer Lachkrämpfe bekomme, wenn die Android-Riege anfängt zu meckern, weil Apple nach 3 Jahren Geräte abkündigt...)


    konzepte können nie von anfangan perfekt sein!
    software wird mit der zeit erst besser, sie ist es niemals von beginn an!


    Richtig. Doch die Konzepte in Android (und damit meine ich das SDK, das Betriebssystem beeindruckt mich schon sehr!) sind nicht nur unperfekt, sie sind von Anfang an absolut undurchdacht. Das hat sich erst mit 3.0 geändert. Meiner Meinung nach VIEL zu spät.


    Dazu sollte man wissen, dass ich damals™ mit dem SDK 1.2 angefangen habe meine ersten Versuche auf Android zu machen. Als olles Gewohnheitstier bin ich Konzepte halt gewöhnt. Fragments gab es damals™ nicht, heute sind sie notwendig, da Activities wie gesagt kein ordentliches Tablet-UI zu Stande bekommen.
    Nur: daran hätte Google auch damals™ denken können, sollen und müssen. 1983 hatte Apple bereits das Newton MessagePad draußen, 2001 ging Siemens mit dem SIMPad an den Start. Beides zwar viel zu früh, doch die Geschichte lehrt uns, dass irgendwann die Zeit dafür reif ist. In diesem Fall 2010, 27 Jahre nach dem ersten Versuch. 2009 mit Einführung des Google G1 waren Tablets schon abzusehen...

    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!