Android Tutorial Tabelle View auf ScrollView basierend

klaus

Expert
Licensed User
Longtime User
Man kann folgenden Code zum Anzeigen von Daten in Tabellenform benutzen.

Der komplette Code des Programms befindet sich am Ende.
Das Englische Originaltutorial.

table_1.png


Die Tabelle besteht aus zwei Hauptviews. Die Kopfzeile ist ein Panel mit Labels. Der Hauptteil der Tabelle besteht aus einer ScrollView mit Labels als Zellen.

Sie können den Code ändern um das Aussehen der Tabelle zu ändern.
Einige der Einstellungen können in Sub Globals geändert werden:

B4X:
    'Table settings
    HeaderColor = Colors.Gray
    NumberOfColumns = 4
    RowHeight = 30dip
    TableColor = Colors.White
    FontColor = Colors.Black
    HeaderFontColor = Colors.White
    FontSize = 14
Daten in die Tabelle einfügen:
B4X:
    'add header
    SetHeader(Array As String("Col1", "Col2", "Col3", "Col4"))
    'add rows
    For i = 1 To 100
        AddRow(Array As String(i, "Some text", i * 2, "abc"))
    Next
    'set the value of a specific cell
    SetCell(0, 3, "New value")
    'get the value 
    Log("Cell (1, 2) value = " & GetCell(1, 2))
Tabellen Events:
B4X:
Sub Cell_Click
    Dim rc As RowCol
    Dim l As Label
    l = Sender
    rc = l.Tag
    activity.Title = "Cell clicked: (" & rc.Row & ", " & rc.Col & ")"
End Sub
Sub Header_Click
    Dim l As Label
    Dim col As Int
    l = Sender
    col = l.Tag
    Activity.Title = "Header clicked: " & col
End Sub
Der Code ist nicht zu schwierig und man kann ihn noch weiter 'customisieren' falls nötig.

Das gleiche Programm mit Zeilen- und Spaltenlinen befindet sich hier:
Gridline in Tableview using a ScrollView

Dateien:
TableExample.zip enthält nicht die CSV Funktionalität, kann jedoch mit der Demoversion verwendet werden.
TableExample1.1.zip benutzt die StringUtils Library.

Beide Dateien :
zip.gif
TableExample.zip
zip.gif
TableExample1.1.zip
 
Last edited:

specci48

Well-Known Member
Licensed User
Longtime User
Hallo Heinz,

bitte diese von klaus hervorragend bereitgestellten Tutorials :sign0098: nicht mit direkten Fragen beantworten, sondern "sauber" im deutschen Forum einen neuen Thread aufmachen.


Danke!
specci48
 
Top