Android Question how to copy list to table

arana

Member
I have a list (string?) of items that were created using

Sub SplitText(Text As String) As String()
Dim sText() As String
sText = Regex.Split(CRLF, Text)
Return sText
End Sub



List is something like

xxxx,123
bbbb,456

Now I want to assign that array(is it an array or is it a string what regexx.split returns? to a B4ATable with 2 columns

This is not working:
B4X:
Private Sub Done_Click

    Dim myitems() As String

    Dim l As List

    myitems = SplitText(ShipList.text)

    For Each  Item As String In myitems

    l.Add(Item)

    Next

    Tbl1.SetData(l)

 

End Sub


Sub SplitText(Text As String) As String()

   Dim sText() As String

   sText = Regex.Split(CRLF, Text)

   Return sText

End Sub
[QUOTE]
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
Error occurred on line: 677 (B4XTable)
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Object[]
    at b4a.example.b4xtable$ResumableSub_SetData.resume(b4xtable.java:455)
[/QUOTE]
 

Andrew (Digitwell)

Well-Known Member
Licensed User
Longtime User
Based on the description of how B4xTable works. Each item in the list should be an array.


Erel's example code
B4X:
Dim data As List
data.Initialize
data.Add(Array(1, 2, 3))
data.Add(Array(4, 5, 6))
B4XTable1.SetData(data)

so you need to change your list to:
B4X:
Private Sub Done_Click
    Dim myitems() As String
    Dim l As List
    myitems = SplitText(ShipList.text)
    For Each  Item As String In myitems
        l.Add(Array(Item))  ' Add the item as an array
    Next
    Tbl1.SetData(l)

 

End Sub
 
Upvote 0

arana

Member
Thank you , had already done something about it, although not elegant at all, this worked for me when I was already in a hurry

B4X:
Private Sub Done_Click
    Dim myitems() As String
    Dim l As List
    l.initialize   
    myitems = SplitText(ShipList.text,CRLF)
    'Dim Row() As Object = Array (SplitText(myitems(0),","))
    For n=0 To myitems.length-1
        Dim datoslista() As String
        datoslista = SplitText(myitems(n),",")  'validar si solo queda un elemento, marcara error
        Dim Row() As Object = Array (datoslista(0),datoslista(1))
        'Dim Row() As Object = Array (myitems(0),myitems(1))
        l.Add(Row)
    Next
    '    MsgboxAsync( Item,"test")
    'Tbl1.add (mylist)
    
    'l.Add(myitems(1))
    'Next
    Tbl1.SetData(l)
 
Upvote 0
Top