thanks for taking interest , i am also trying it at my end.
the above problem in the screen shot can be removed if you add
layout Variants as
900x600, scale =1(160dp) and remove the phone Variant
regds
Ok, true (I've tested it) so this is not a problem.
Back to your problem:
In order to make your code work you have (it's my opinion) tow options.
** FIRST OPTION **
Just have one adp for each label.
Now you have sDate1, sDate2, sDate3 and so on, but all of these labels are linked to the same adp. Or better, you have only one adp linket to eDate&nt-1. In your for-next cycle you have only one adp, therefore on the last cycle that adp is linked to the last time you used it (eDate & nt-1).
So, you can decare an array of adp -> adp(nt) assigning a single adp to a single label.
*** SECOND OPTION **
If you want to use a single adp you need to link (somehow) the buttons sDateBtn and eDateBtn to the adp.
But you need to know WHICH button has been pressed, in order to link (addToActivity) the unique adp with that specific button.
Now, the button is created by ViewMgr, which uses the Tag property to store a struct (type) with the ActionSub and the calling module. In your case, all the ActionSub are the same (all the 'buttons' raise the same sub sDate_Click or eDate_Click). You can add to the type MyActionSub a new field 'Index' where to store the index of the button (the 'y' of your cycle).
In the sDate_click and eDate_Click events the sender is (I think) a label. So you create a label somewhere (hidden), assign the sender, get the Tag in a struct like your MyActionSub type and use the new .Index property to get the index and then you assign the adp using the Index to correctly point to the destination label....
(hope it works)