Just a recommendation, but If you had a Type that defined each of your list objects, that would help you tremendously. Then you could have an array or list prebuilt, and not rely on the list view itself.
In this type you could have:
Type listObject (id As Int, value As Int)
If you wanted a list or array:
Public listObjects As List
Public listObjects() As listObject
You can set the tag of the listview panel OR the B4XPlusMinus to the ID/Index of your value, then just modify that index/ID whenever the click/valueChanged event occurs.
You can access the ID/Index inside of the CLV_click or B4XPlusMinus function:
Dim myPanel As Panel = Sender
Dim myID As Int = myPanel.tag
Once you click the save button, you can map your array/list, and use the JSONGenerator to store a string in your Database. When you go to read from the database, just decode the string.