Carico un CLV con questo codice
Ma ricevo l'errore sulla riga 24 (che ho evidenziato con il commento):
Error occurred on line: 24 (B4XMainPage)
java.lang.RuntimeException: Object should first be initialized (B4XView).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:67)
... ecc ecc
Se invece di True, metto False, l'errore non c'è (perchè probabilmente non viene scatenato l'evento). Quindi è come se la checkbox non fosse ancora "pronta", inizializzata durante il caricamento. Come posso ovviare?
B4X:
Sub RiempieClvImpianti
For Each oImpianto As Impianto In GL.lstImpianti
clvImpianti.Add(CreaRigaCLVImpianto(oImpianto.Nome, [B]True[/B], clvImpianti.AsView.Width, 40dip),"")
' SE AL POSTO DI [B]TRUE[/B], METTO [B]FALSE[/B], L'ERRORE NELL'EVENTO NON SI VERIFICA
Next
End Sub
Sub CreaRigaCLVImpianto(Text As String, Checked As Boolean,Width As Int, Height As Int) As Panel
'Creo un pannellino per ogni impianto. Il pannellino avrà al suo interno il layout "CellItem"
'composto da una label per il nome e una check per la selezione dell'item
Dim p As B4XView = xui.CreatePanel("")
p.SetLayoutAnimated(0, 0, 0, Width, Height)
p.LoadLayout("CellItem")
lblImpianto.Text = Text
chkImpianto.Checked=Checked
Return p
End Sub
Sub chkImpianto_CheckedChange(Checked As Boolean)
Dim index As Int = clvImpianti.GetItemFromView(Sender) ' QUI RICEVO L'ERRORE !!!
Dim pnl As B4XView = clvImpianti.GetPanel(index)
Dim lbl As B4XView = pnl.GetView(0)
clvImpianti.AsView.BringToFront
'Ad ogni selezione/deselezione di un impianto, cambia il colore
'(Se non è selezionato (not checked) lo mette in azzurro altrimenti in nero)
Dim num As Int
If Not (Checked) Then num=1
lbl.TextColor=Colors.RGB(num*70,num*134,num*208)
End Sub
Error occurred on line: 24 (B4XMainPage)
java.lang.RuntimeException: Object should first be initialized (B4XView).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:67)
... ecc ecc
Se invece di True, metto False, l'errore non c'è (perchè probabilmente non viene scatenato l'evento). Quindi è come se la checkbox non fosse ancora "pronta", inizializzata durante il caricamento. Come posso ovviare?