Android Question CLVTree add clickable text with CSBuilder

mike1967

Active Member
Licensed User
Longtime User
Hello
code:
Dim clicktext As String
        clicktext="Edit"
        
        cs.Initialize.size(13).Bold.Append("N.ro Interno:").Pop.Append(dispositivo.Get("numero")).Append(CRLF).Bold.Append("Matricola:").Pop.Append(dispositivo.Get("matricola")).Append(CRLF).Bold.Append(dispositivo.Get("descrizione")).PopAll.Append(CRLF).Clickable("edit",clicktext).Append(clicktext).PopAll
        Dim item2 As CLVTreeItem= Tree.AddItem(item,cs,LoadBitmap(File.DirAssets,"file-alt.png"),"")
        Dim Index As Int=CustomListView1.GetItemFromView(item2.InternalPanel)
        cs.EnableClickEvents(CustomListView1.GetPanel(Index).GetView(0))
, is possible to add an item to CLVTree with clickable text by CSBuilder ? If Yes Can Provide Me a sample ? Thanks in advances

Error view should be initializate.
 
Last edited:

Erel

B4X founder
Staff member
Licensed User
Longtime User


The challenge here is that CLVTree creates the views when needed and reuses them when possible, so you can't simply access the views.
The solution is to use the source code of CLVTree and add:
B4X:
Dim cs As CSBuilder 'ignore
cs.EnableClickEvents(lbl)
In the code that creates new UI items.

See the attached B4A-only project.
 

Attachments

  • Project.zip
    235.1 KB · Views: 215
Upvote 0

mike1967

Active Member
Licensed User
Longtime User
with this modify the events CustomListView1_ItemClick (Index As Int, Value As Object) is not raised. What About ?
 
Upvote 0

mike1967

Active Member
Licensed User
Longtime User
Thanks works. How to retrive the item value in order to add sub items with this method Instead of CustomListView1_ItemClick (Index As Int, Value As Object) ?
 
Upvote 0

Mahares

Expert
Licensed User
Longtime User
How to retrive the item value in order to add sub items with this method Instead of CustomListView1_ItemClick (Index As Int, Value As Object) ?
Why do you need a clickable span in the title. Why not use the CustomListView1_ItemClick event and based on its value execute your wish. FOr instance:
B4X:
Private Sub CustomListView1_ItemClick (Index As Int, Value As Object)
Dim item As CLVTreeItem = Value
 Dim s As String = item.Text
If s.tolowercase.contains("test") Then
        Dim i As Intent
        i.Initialize(i.ACTION_VIEW, "https://www.google.com")
        StartActivity(i)
    End If
End Sub
You probably have a reason to use clickable, but can you tell us why. I see that you have a follow up thread for Erel to help you with.
 
Upvote 0
Cookies are required to use this site. You must accept them to continue using the site. Learn more…