my code:
#Region Shared Files
#CustomBuildAction: folders ready, %WINDIR%\System32\Robocopy.exe,"..\..\Shared Files" "..\Files"
'Ctrl + click to sync files: ide://run?file=%WINDIR%\System32\Robocopy.exe&args=..\..\Shared+Files&args=..\Files&FilesSync=True
#End Region
'Ctrl + click to export as zip: ide://run?File=%B4X%\Zipper.jar&Args=CLVExample.zip
Sub Class_Globals
Private Root As B4XView
Private xui As XUI
Private clv2 As CustomListView
Private dd As DDD
End Sub
Public Sub Initialize
End Sub
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
dd.Initialize
xui.RegisterDesignerClass(dd)
Root.LoadLayout("MainPage")
For i = 1 To 20
clv2.Add(CreateListItem($"Item test test test test #${i}"$, clv2.AsView.Width, 60dip), $"Item #${i}"$)
Next
End Sub
Private Sub CreateListItem(Text As String, Width As Int, Height As Int) As B4XView
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, Width, Height)
p.LoadLayout("CellItem")
'Note that we call DDD.CollectViewsData in CellItem designer script. This is required if we want to get views with dd.GetViewByName.
dd.GetViewByName(p, "Label1").Text = Text
Return p
End Sub
Private Sub clv2_ItemClick(Index As Int, Value As Object)
Log(Index & " = " & Value)
End Sub
Private Sub CheckBox1_CheckedChange(Checked As Boolean)
Dim index As Int = clv2.GetItemFromView(Sender)
Dim pnl As B4XView = clv2.GetPanel(index)
Dim chk As B4XView = dd.GetViewByName(pnl, "CheckBox1")
Dim checkedItems As List
checkedItems.Initialize
For i = 0 To clv2.GetSize - 1
Dim chk As B4XView = dd.GetViewByName(clv2.GetPanel(i), "CheckBox1")
If chk.Checked Then
checkedItems.Add(clv2.GetValue(i))
End If
Next
Log("Checked items: " & checkedItems)
Sleep(500)
End Sub
I can select or unselect a checkbox clicking on it. Want to do same job also when the label near the checkbox is clicked. No matter if you click on checkbox or label the checkbox has to be selected or unselected. How can i do that ? I attached my example
Attachments
Last edited: