Sub Class_Globals
Private Root As B4XView
Private xui As XUI
Private CustomListView1 As CustomListView
Private CheckboxIndex As Int = 0
End Sub
Public Sub Initialize
End Sub
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
Root.LoadLayout("MainPage")
Dim cs As CSBuilder
AddItem(cs.Initialize.Color(0xFFFFA100).Bold.Append("Select All / Deselect All").PopAll)
For i = 1 To 30
AddItem(cs.Initialize.Bold.Append($"Item #${i}"$).PopAll)
Next
End Sub
Private Sub AddItem(Text As Object)
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, CustomListView1.AsView.Width, 35dip)
p.LoadLayout("Item")
XUIViewsUtils.SetTextOrCSBuilderToLabel(p.GetView(CheckboxIndex), Text)
CustomListView1.Add(p, "")
End Sub
Private Sub CustomListView1_ItemClick (Index As Int, Value As Object)
Dim Index As Int = CustomListView1.GetItemFromView(Sender)
Dim chk As B4XView = CustomListView1.GetPanel(Index).GetView(CheckboxIndex)
chk.Checked = Not(chk.Checked)
End Sub
Private Sub CheckBox1_CheckedChange(Checked As Boolean)
Dim index As Int = CustomListView1.GetItemFromView(Sender)
If index = 0 Then
SelectAllStateChangedByUser
End If
End Sub
Private Sub SelectAllStateChangedByUser
Dim state As Boolean = CustomListView1.GetPanel(0).GetView(CheckboxIndex).Checked
For i = 1 To CustomListView1.Size - 1
CustomListView1.GetPanel(i).GetView(CheckboxIndex).Checked = state
Next
End Sub