Problem mit ListView - Einzeilige ListView gewünscht

  • 12 Antworten
  • Letztes Antwortdatum
M

masterjule

Fortgeschrittenes Mitglied
50
Hallo,

ich habe ein Problem und leider bisher, trotz googeln, keine Lösung dazu gefunden.

Ich habe eine ListView, die über einen Cursor mit Daten aus der Datenbank gefüllt wird.
Nun ist es so, dass jeder ListView Eintrag so hoch ist, dass der gesamte Text reinpasst. Ich hätte es aber gerne so, dass jeder Eintrag immer nur einzeilig ist und halt nur soviel angezeigt wird, wie in eine Zeile passt. Der Rest soll einfach abgeschnitten werden.

Hat da jemand eine Idee? Gibt es eine einfache (oder auch kompliziertere :)) Lösung dafür?

Gruß
Julian
 
Verstehe ich das richtig:
Zur zeit sieht es so aus
--------------------
|xxxxxxxxxxxxxxxxxx|
|asdasdadadadadad|
|asdasdadadadadad|
|asdasdadadadadad|
|asdasdadadadadad|
--------------------
--------------------
|xxxxxxxxxxxxxxxxxx|
|asdasdadadadadad|
|asdasdadadadadad|
|asdasdadadadadad|
|asdasdadadadadad|
--------------------
usw...

Du willst jetzt, dass nur noch "xxxx" zu sehen ist?

Das erste was mir einfällt ist, dass du dir die Breite von dem aktuellen Devices holst. Dann, keine Ahnung wie groß ein Buchstabe ist - sagen wir mal 4 Pixel breit, kannst du zum Beispiel sagen:
Code:
Devices-Breite - 50 = Zeichen von Links des Stinges die du anzeigen kannst.

Gruß
 
Genau so dachte ich mir das. Den gesamten Text sieht man dann, wenn man auf das entsprechende Element drückt.

Das ist eine gute Idee, die werde ich mal weiter verfolgen.
Wie komm ich denn an die Device Breite?

Gruß
Julian
 
Mach eine custom listview. Dort mach du ein textview rein, welches nur eine zeile erlaubt.

Oder du tust mit substring nur ~60zeichen reinschreiben.

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
Daran dachte ich auch schon, habe aber gehofft, dass es eine einfachere Lösung gibt.

Und einfach eine feste Zeichenanzahl wird wohl nicht gehen.
Unterschiedliche Bildschirmgrößen, Smartphone - Tablet; unterschiedliche Breite Portrait - Landscape.

Daher finde ich die Idee von IceClaw ganz gut. Abhängig von der aktuellen Breite die Zeichenanzahl setzen.
Aber da ist immer noch die Frage offen:
Wie komm ich denn an die Device Breite?
 
Super, Danke!
Werde das dann mal ausprobieren.
 
Soweit, sogut. Aber damit meine ListView dann auch das anzeigt, was ich will muss ich wohl eine Custom ListView schreiben, oder? Das wird nicht mit der Standard funktionieren?
 
Du willst doch nur ein bisschen Text pro Eintrag anzeigen.
Wieso also Custom?
 
Die ListView bekommt die Daten ja aus einem Cursor und der wiederrum bekommt die Daten in einem Loader aus der Datenbank..
Ich weiß da jetzt so direkt noch nicht, wo ich ansetzen muss / soll
 
Das Problem ist soweit gelöst.
War eigentlich ganz einfach:

Ich habe einfach die Datei simple_list_item_1 kopiert und zu dem Textview da noch die Zeile
Code:
android:maxLines="1"
hinzugefügt.
Ja dem Adapter einfach mein eigenes Layout übergeben und fertig :thumbsup:

Man sieht jetzt (leider) nur nicht, ob der Text weitergeht oder nicht. Da bin ich noch am überlegen, wie man das zeigen könnte..
 
Genau so habe ich mir das vorgestellt! Super, Danke :thumbsup::thumbsup:
 
Zurück
Oben Unten