Spanish Problemas con Array de Botones

Santiago Russo

Member
Licensed User
buenas estoy realizando una aplicacion en b4a, tengo 4 botones en tiempo de ejecucion, los creo le doy formato etc los coloco en un panel todo ok, para eso utilizo un array de botones todo ok, luego creo un sub para los botones, la idea es cambiar de color cuando el usuario hace click sobre el boton yo voy a simplificar un poco el codigo y lo coloco, el problema es cuando pulso en el boton uno tambien cambia el color del ultimo boton y asi sucesivamente, espero haber sido claro, en algun momento esto anda bien, no se que pude haber tocado y como dije anda mal

Sub Activity_Create(FirstTime As Boolean)
dim j as int
dim dr as ColorDrawable
dim botones(4) as button
For j=0 To 3
botones(j).Initialize("botones")
dr.Initialize2(Colors.White,18,2dip,Colors.RGB(97,74,144))
botones(j).Background=dr
botones(j).TextColor=Colors.RGB(97,74,144)
botones(j).TextSize=20
botones(j).Tag=j
Select j
Case 0
botones(j).Text="Amable"
panels(i).AddView(botones(j),18.22%x,23.9%y,63.57%x,9.20%y)
Case 1
botones(j).Text="Persuasivo"
panels(i).AddView(botones(j),18.22%x,36%y,63.57%x,9.20%y)
Case 2
botones(j).Text="Humilde"
panels(i).AddView(botones(j),18.22%x,48%y,63.57%x,9.20%y)
Case 3
botones(J).Text="Original"
panels(i).AddView(botones(j),18.22%x,60%y,63.57%x,9.20%y)
End Select
next
end sub

Sub botones_Click
Dim b As Button
b = Sender
b.Color=Colors.Red
end sub
 

Santiago Russo

Member
Licensed User
por cierto tambien probe sin array o sea declarando un button debajo del for iniciandolo y colocandole el tag, luego declaro el sub del boton realizo una case segun el tag y me da el mismo error
 

klaus

Expert
Licensed User
Move Dim dr As ColorDrawable into the For / Next loop.
B4X:
Sub Activity_Create(FirstTime As Boolean)
    Dim j As Int
    Dim botones(4) As Button
    For j=0 To 3
        botones(j).Initialize("botones")
        Dim dr As ColorDrawable
        dr.Initialize2(Colors.White,18,2dip,Colors.RGB(97,74,144))
        botones(j).Background=dr
        botones(j).TextColor=Colors.RGB(97,74,144)
        botones(j).TextSize=20
        botones(j).Tag=j

You should use code tags to show code:

upload_2019-10-9_14-59-28.png


upload_2019-10-9_15-0-13.png
 
Top