Android Question Select item also when label is clicked

stp

Active Member
Licensed User
Longtime User
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

  • CLVExample22.rar
    446.2 KB · Views: 62
Last edited:

Facebook

New Member
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
 
Upvote 0
Top