ListViewItem plazieren

F

Fujit

Neues Mitglied
0
Hallo,
ich habe in meinem ListView zwei Strings. Namen und Datum.
Ich versuche diese zwei die ganze Zeit so zu plazieren, dass der Name ganz links in eine Zeile ist und das Datum in der selten Zeile ganz rechts ist.
Dafür habe ich jetzt unter der Berücksichtigung von Text.size() gesagt, dass insgesamt 29 Zeichen in eine Zeile passen.
Daraus habe ich den variablen Abstand errechnet, der zwischen:
Name Datum
je nach länge sich ändert:
Code:
margin = (29-(name.length()+datm.length())) ;
items.add(key + String.format("%"+ margin +"s", " ")+sum+"€");

Nur funktioniert diese Vorgehensweise nicht....
Je nach Länge des namens, habe ich manchmal zwei Zeilen, weil es durch die "margin" nicht alles auf eine Zeile passt.
Wie kann ich sowas umsetzen? '
Danke für jeden Tipp.
 
Nimm als dein ListViewItem doch ein RelativeLayout mit 2(!) Textviews. Die eine alignst du links, die andere rechts. (android:alignParentLeft bzw. alignParentRight im XML wenn ich das gerade korrekt im Kopf habe)
 
Danke, ja an sowas hab ich auch gedacht.
Aber wie ist da der Ansatz?
Ich habe zur Laufzeit einen ListViewAdapter:
Code:
itemAdapter = new ArrayAdapter<String> ( this, R.layout.custom_textview, eintraege);
lstView = (ListView) findViewById(R.id.listView);
lstView.setAdapter(itemAdapter);

Die Variable Einträge ist eine "Arraylist<String>".
Das bedeutet, dass ich ein RelativLayout erzeugen mit zwei Textviews. Einträge in diese Textview packen und all das wäre ein Eintrag im ArrayList<string> für den Adapter??

Ist das die richtige Vorgehensweise? Ich hab da Bedenken, denn in ein ArrayList<String> kommen nur strings rein und keine View´s oder Steuerelemente.
 
Nein, du musst wohl einen eigenen Adapter schreiben (als Subklasse eines bestehenden) und dort die getView Methode überschreiben. Außerdem ist es nicht sinnvoll in den Adapter einfach Strings reinzuschmeißen wenn du mehrere Strings pro Item haben willst. Also brauchst du eine kleine Daten-Klasse in der du deine beiden anzuzeigenden Strings speicherst.
Z.B.: Using lists in Android (ListView) - Tutorial
 
hhmm.... also der Code sieht zur Zeit so aus:


Code:
ArrayAdapter<String> itemAdapter = new ArrayAdapter<String> ( this, R.layout.custom_textview, items );
Eigentlich ist das die Funktionsweise von generices, wo ich den Typen zur Laufzeit bestimme, so könnte ich doch auch sagen:

Code:
ArrayAdapter<RelativeLayout> myAdapter = new ArrayAdapter<RelativeLayout>( this, R.layout.custom_textview, meinRelativesLayout);

Beim zweiten Paramter hätte ich allerdings Bedenken
 

Ähnliche Themen

J
Antworten
19
Aufrufe
2.487
swa00
swa00
N
Antworten
5
Aufrufe
818
Nexxee
N
D
  • DrLiightninG
Antworten
5
Aufrufe
1.421
DrLiightninG
D
Zurück
Oben Unten