Hi everyone,
I do not know if anyone has faced that before as I didn't find something similar in the search. I dynamically create buttons and I assign them with a tag and an image with the following code I found in the forum:
The tag is in the form (IDFromDB_Action where action is Add, Minus, Information).
The buttons are added in a panel which itself is added dynamically in the panel of a scrollview.
The code that I use for the Buttons Click event is the following:
The "Funny" but not so funny thing is that when I click on a button I get in the Log(Sender) the following clicking on the same button several times. As you will see clicking in the same area it detects clicking alternatively and by phone's "will" the button or the panel also with different CALayer values.
I do not know what I have done wrong.
Any help will be highly appreciated.
I do not know if anyone has faced that before as I didn't find something similar in the search. I dynamically create buttons and I assign them with a tag and an image with the following code I found in the forum:
B4X:
'state: 0 - normal, 1 - highlighted, 2 - disabled
Sub SetBackgroundImage(b As Button, bmp As Bitmap, state As Int)
Dim no As NativeObject = b
no.RunMethod("setBackgroundImage:forState:", Array(bmp, state))
End Sub
The tag is in the form (IDFromDB_Action where action is Add, Minus, Information).
The buttons are added in a panel which itself is added dynamically in the panel of a scrollview.
The code that I use for the Buttons Click event is the following:
B4X:
Sub btn_Click
Log(Sender)
If Sender Is Button Then
Try
Dim btn As Button
btn = Sender
Dim sTag(2) As String
sTag = Regex.Split("_", btn.Tag)
LogColor(btn.Tag, Colors.Red)
Select Case sTag(1)
Case "Add"
'Do something
Case "Minus"
'Do something
Case "Information"
'Do something
End Select
Return
Catch
'Log(LastException)
End Try
Else
If Sender Is ImageView Then
'The image is clicked perfectly every time
End If
End If
End Sub
The "Funny" but not so funny thing is that when I click on a button I get in the Log(Sender) the following clicking on the same button several times. As you will see clicking in the same area it detects clicking alternatively and by phone's "will" the button or the panel also with different CALayer values.
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
<UIButton: 0x10ed485e0; frame = (222.4 30.6417; 33.6 33.6); opaque = NO; gestureRecognizers = <NSArray: 0x283aec1b0>; layer = <CALayer: 0x2834b11c0>>
2_Information
<UIButton: 0x10ed485e0; frame = (222.4 30.6417; 33.6 33.6); opaque = NO; gestureRecognizers = <NSArray: 0x283aec1b0>; layer = <CALayer: 0x2834b11c0>>
2_Information
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
<UIButton: 0x10ed485e0; frame = (222.4 30.6417; 33.6 33.6); opaque = NO; gestureRecognizers = <NSArray: 0x283aec1b0>; layer = <CALayer: 0x2834b11c0>>
2_Information
<UIButton: 0x10ed485e0; frame = (222.4 30.6417; 33.6 33.6); opaque = NO; gestureRecognizers = <NSArray: 0x283aec1b0>; layer = <CALayer: 0x2834b11c0>>
2_Information
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
<UIButton: 0x10ed485e0; frame = (222.4 30.6417; 33.6 33.6); opaque = NO; gestureRecognizers = <NSArray: 0x283aec1b0>; layer = <CALayer: 0x2834b11c0>>
2_Information
<UIButton: 0x10ed485e0; frame = (222.4 30.6417; 33.6 33.6); opaque = NO; gestureRecognizers = <NSArray: 0x283aec1b0>; layer = <CALayer: 0x2834b11c0>>
2_Information
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
<UIButton: 0x10ed485e0; frame = (222.4 30.6417; 33.6 33.6); opaque = NO; gestureRecognizers = <NSArray: 0x283aec1b0>; layer = <CALayer: 0x2834b11c0>>
2_Information
<UIButton: 0x10ed485e0; frame = (222.4 30.6417; 33.6 33.6); opaque = NO; gestureRecognizers = <NSArray: 0x283aec1b0>; layer = <CALayer: 0x2834b11c0>>
2_Information
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
<B4IPanelView: 0x10ed43bd0; frame = (0 67; 266 67.2); clipsToBounds = YES; gestureRecognizers = <NSArray: 0x283ae8f60>; layer = <CALayer: 0x2834b0ea0>>
I do not know what I have done wrong.
Any help will be highly appreciated.
Last edited: