Android Question CustomListView: how to get/add?

oceanwanderlust

Member
Licensed User
Longtime User
In CustomListView, I want to modify a panel whenever a user clicks on it. However, the simple operation of getting a panel and adding it to the back of the CustomListView is crashing, much less anything fancy.
What am I doing wrong?

Sub clv_ItemClick (Index AsInt, Value AsObject)
Dim pnl AsPanel
pnl = clv.GetPanel(Index)
clv.Add(pnl, mypanel_size_dip,"try but crashes here")
End Sub

My next question will be; once I get this panel, how do I get its contents, such as an ImageView or text?

thanks

joe
 

RandomCoder

Well-Known Member
Licensed User
Longtime User
What error message do you get?

With regard to getting the contents of the panel, you can easily get each view contained in the panel. I do this with the following code which basically highlights items in the list when selected or deselects then if already highlighted...
B4X:
Public Sub clvItem_Selection(index As Int, selected As Boolean)
    ' Set background colour (called by Music Module, only applies to audio tracks)
    Dim colorBackground As Int
    If selected = True Then
        ' Selected colour
        colorBackground = Colors.LightGray
    Else
        ' De-selected colour
        colorBackground = Colors.DarkGray
    End If
    ' Check that index is within bounds of the CustomListView then apply background colour (select or de-select)
    If clv.GetSize > index Then
        ' Get parent panel
        Dim pItem As Panel
        pItem = clv.GetPanel(index)
        For Each v As View In pItem
            ' Set label colour
            If v Is Label Then
                v.Color = colorBackground
            End If
        Next
        ' Set panel colour
        pItem.Color = colorBackground
    End If
End Sub

Hope it helps,
RandomCoder
 
Upvote 0
Top