Bonjour, après un événement click, je crée une nouvelle ligne sur un scrollview, (je me suis servi du tutoriel de Klaus, très pratique d'ailleurs) mais j'ai fait quelques modifications car mes labels-cellules ne font pas toutes la même taille. après un click sur bouton j'actionne un addROw et exécute l'action suivante :
mais si je sélectionne une ligne (cell_click), la valeur de colonne est toujours la même, (3 en l’occurrence) alors que j'incrémente de 1 à chaque nouvelle ligne dans le tag du label.
pour info, j'ai crée un dans un module1, lblcréatortag pour mettre en forme le label, code ici :
la valeur de ligne est bonne, je comprends pas pourquoi dans le tag cette valeur de colonne reste inchangée à 3... ça me bloque pour la suite, si je veux changer la valeur d'un seul label, il ne me le reconnais pas. Merci d'avance
B4X:
Sub addRow(values() As String)
Dim lastROW As Int ' retourne le numero de ligne
Dim lastCOL As Int ' retourne le numero de colonne
lastCOL = 0
lastROW = nbrROW
Dim rc As rowcol
rc.Initialize
rc.col = lastcol
rc.row = lastrow
table.addView(module1.lblCreatorTag("cell",rc, values(0), 16, blanc),00*Px,celH * lastROW, 20*Px -1dip, celH)
lastCOL = lastCOL +1 ' augmente la valeur de colonne de 1
rc.col = lastCOL
table.addView(module1.lblCreatorTag("cell",rc, values(1), 16, blanc),20*Px, celH * lastROW, 40*Px -1dip, celH)
lastCOL = lastCOL +1 ' augmente la valeur de colonne de 1
rc.col = lastCOL
table.addView(module1.lblCreatorTag("cell",rc, values(2), 16, blanc),60*Px, celH * lastROW, 20*Px -1dip, celH)
lastCOL = lastCOL +1 ' augmente la valeur de colonne de 1
rc.col = lastCOL
table.addView(module1.lblCreatorTag("cell",rc,values(3), 16, rouge),80*Px, celH * lastROW, 20*Px -1dip, celH)
table.Height = nbrROW * celH
End Sub
Sub cell_Click
Dim rc As rowcol
Dim l As Label
l = Sender
rc = l.Tag
selectedRow(rc.row) 'sert a afficher la ligne en surbrillance
activity.Title = "cellule clickée = ("&rc.row&","&rc.col&")"
End Sub
mais si je sélectionne une ligne (cell_click), la valeur de colonne est toujours la même, (3 en l’occurrence) alors que j'incrémente de 1 à chaque nouvelle ligne dans le tag du label.
pour info, j'ai crée un dans un module1, lblcréatortag pour mettre en forme le label, code ici :
B4X:
Sub lblCreatorTag (event As String, tag As rowcol,Text As String, taille As Float, couleur As Int) As Label
Dim b As Label
'tag.row = tag.row +1
b.Initialize(event)
b.Text = Text
b.Tag = tag
b.Color = couleur
b.TextColor = Colors.Black
b.Gravity = Gravity.CENTER
b.TextSize = taille
Return b
End Sub
la valeur de ligne est bonne, je comprends pas pourquoi dans le tag cette valeur de colonne reste inchangée à 3... ça me bloque pour la suite, si je veux changer la valeur d'un seul label, il ne me le reconnais pas. Merci d'avance