German Twolines Listview

so27

Active Member
Licensed User
Longtime User
Hallo liebe Community,

ich habe ein kleines Problem mit dem ListView Control.

Ein Listview mit einer Zeile spiechere ich gewöhnlich wie folgt:
B4X:
File.WriteList(File.DirInternal, "dateiname.lst", lstText01)

Wie aber speichere ich ein Listview welches Daten mit AddTwolines erhalten hat? Und wie öffne ich die Datei, damit auch wieder die zwei Zeilen eingelesen werden?

Für Eure Hilfe wäre ich sehr dankbar.
 

klaus

Expert
Licensed User
Longtime User
Du verwechselt ListView und List.
In File.WriteList(File.DirInternal, "dateiname.lst", lstText01) speicherst Du nicht Daten einer ListView sondern einer List!
List und ListView sind zwei verschiedene Objekte.
Es gibt keine direkte Funktion welche die die Daten einer ListView direkt speichert.
Du musst seblst eine Routine schreiben.
Wie füllst Du die zweizeilige ListView.
In einer gleichen ListView kann man einzeilige und zweizeilige Einträge mischen.
 

so27

Active Member
Licensed User
Longtime User
Ich übergebe zwei Textfelder an das ListView. Textfeld1 = Label und Textfeld2 = SecondLabel.
 

klaus

Expert
Licensed User
Longtime User
Ich übergebe zwei Textfelder an das ListView. Textfeld1 = Label und Textfeld2 = SecondLabel.
Und ???
Wenn Du eine konkrete Antwort erwartest musst Du schon genauer erklähren was Du machst oder machen willst.

Du musst die Daten der Textfelder irgend wo anders speichern.
Für die einzeilige ListView speicherst Du doch die Daten in der lstText01 List.
Du musst auch in Betracht ziehen dass der Ruckgabewert Value, wenn man auf einen Eintrag klickt, der Text der ersten Zeile ist, ausser Du füllst die ListView mit ListView.AddTwoLines2.
 

DonManfred

Expert
Licensed User
Longtime User
Das kleine Beispiel hier könnte helfen... Es nutzt eine Map für jeden Eintrag in der Listview für den "Value". Bei Klick auf einen Eintrag wird die gespeicherte Map ausgegeben.

B4X:
    For i = 0 To 2
        Dim retmap As Map
        retmap.Initialize
        retmap.Put("tag","TagValue"&i)
        retmap.Put("itemID","ItemID"&i)
        retmap.Put("name","ItemName"&i)
        retmap.Put("line1","This is line 1")
        retmap.Put("line2","This is line 2")
        lv.AddTwoLines2(retmap.Get("line1"), retmap.Get("line2"), retmap)
    Next

B4X:
Sub lv_ItemClick (Position As Int, Value As Object)
    Dim retmap As Map
    retmap = Value
    Log("Item at Pos "&Position&" Clicked...")
    Log("ItemInfos:")
    Log("tag = "&retmap.Get("tag"))
    Log("itemID = "&retmap.Get("itemID"))
    Log("name = "&retmap.Get("name"))
    Log("line 1 = "&retmap.Get("line1"))
    Log("line 2 = "&retmap.Get("line2"))
End Sub
 

Attachments

  • listviewtest.zip
    8 KB · Views: 313

so27

Active Member
Licensed User
Longtime User
Guten Morgen Manfred,

sobald ich Dein Beispiel starte, erscheint folgende Fehlermeldung:
aYYjJ5J.png


Als was muss ich STU deklarieren?
 
Top