B4J Question AS Settings: How to clear / delete existing properties successfully to re-use the component?


Licensed User
Longtime User

I want to re-use the same AS Settings component but show different properties depending on some click event. To demonstrate, I have added 2 buttons, to show 1 set of properties and another set of properties but using the same AS Settings component. What Im expecting is that each button click will clear / delete existing properties and create new ones. Instead, the properties are "appended", the existing groups not being cleared.

Clicking Show Page, this should appear, ONLY.


Clicking Show Component, this should appear ONLY.


Now click "Show Page" and or "Show Component" a couple of more times and notice what happens to the right scroll bar of the app. Current existing properties are not cleared.

How can I solve this, I need the existing groups to be cleared and all existing properties to be cleared and not added on.

Thank you so much.


  • ASSettingReuse.zip
    4.5 KB · Views: 67

Alexander Stolte

Licensed User
Longtime User
It's better to use 2 AS_Settings. But for the case you dont want a clean transition, i have added a ResetGroups function in V1.03.
This will reset the internal list and you can add other properties that were not visible before.

Sub ShowPage
    B4XPages.SetTitle(Me,"Page Settings")

    'clear all existing properties if they exist?
    AS_Settings1.AddGroup("Page","Page Settings")
    AS_Settings1.AddProperty_Boolean("Page","PropertyName_1","Boolean Property True","Description Test Text",Null,True)
    AS_Settings1.AddProperty_Boolean("Page","PropertyName_2","Boolean Property False","Description Long Long Long Long Long Long Long Long Long Long Long Long Long Long Test Text",Null,False)
    AS_Settings1.AddProperty_Boolean("Page","PropertyName_3","Boolean Property True with a long text","",Null,True)
    'Action Button
    AS_Settings1.AddProperty_Action("Page","PropertyName_4","Action Property","",Null,"English")
    AS_Settings1.AddProperty_Action("Page","PropertyName_5","Icon","",AS_Settings1.FontToBitmap(Chr(0xF179),False,30,xui.Color_White),"English, German, Italian, Spanish, Swedish")
    AS_Settings1.AddProperty_ActionClean("Page","PropertyName_6","Delete Account","",AS_Settings1.FontToBitmap(Chr(0xE92B),True,34,xui.Color_White))
    AS_Settings1.AddProperty_Action("Page","PropertyName_7","Pro Feature","",Null,"Pro")
    AS_Settings1.BottomText = "Anele Mbanga" & CRLF & "V1.0.2"
End Sub

Sub ShowComponent
    B4XPages.SetTitle(Me,"Component Settings")
    'clear all existing properties if they exist?
    AS_Settings1.AddGroup("Advanced","Component Settings")
    'Numeric Example
    AS_Settings1.AddProperty_Text("Advanced","PropertyName_8","Text Example","",Null,"Test",100dip,AS_Settings1.InputType_Text)
    AS_Settings1.AddProperty_Text("Advanced","PropertyName_9","Numeric Example","",Null,24,60dip,AS_Settings1.InputType_Numeric)
    AS_Settings1.AddProperty_Text("Advanced","PropertyName_10","Decimal Example","",Null,24.24,100dip,AS_Settings1.InputType_Decimal)
    'AS_Settings1.AddProperty_Text("Advanced","PropertyName_12","Decimal Example",Null,24.24,100dip,AS_Settings1.InputType_IPv4,"")
    AS_Settings1.AddProperty_ComboBox("Advanced","PropertyName_11","ComboBox Example","",Null,1,Array("Option 1","Option 2","Option 3","Option 4"))
    AS_Settings1.BottomText = "Sithaso Holdings" & CRLF & "V1.0.2"
End Sub
Upvote 0