Ciao a tutti, dovrei modificare dati all'interno di un pannello di una customlistview , uso questo metodo, elimino prima la riga e poi inserisco di nuovo i dati, esiste un altro modo?
B4X:
Private Sub CustomListView1_ItemClick (Index As Int, Value As Object)
Dim pnl As B4XView = xui.CreatePanel("")
pnl.SetLayoutAnimated(0, 0, 0, 100%x, 300dip)
pnl.LoadLayout("layitem")
pnl.Tag = CustomListView1
lblOrdine.Text = "lupo"
lblv2.Text = "tartaruga"
CustomListView1.RemoveAt(Index)
CustomListView1.InsertAt(Index,pnl,100dip,100dip)
End Sub
Private Sub CustomListView1_ItemClick (Index As Int, Value As Object)
Dim pnl As B4XView = CustomListView1.GetPanel(Index)
lblOrdine = pnl.GetView(0) ' ammesso che lblOrdine sia la prima view.
lblOrdine.Text = "lupo"
lblv2.Text = pnl.GetView(1) ' ammesso che lblv2 sia la seconda view.
lblv2.Text = "tartaruga"
End Sub
non modifica i dati sulla riga che premo
Sottotemi privati btn_Click
Dim row As Int =CustomListView1.GetItemFromView(Sender)
' aggiuge riga dopo il pulsante premuto
CustomListView1.Add(rowpnl,60dip,Riga)
'' aggiunge una riga prima di quella premuta
CustomListView1.InsertAt(riga, riga, 60dip,100dip)
End Sub
non modifica i dati sulla riga che premo
Sottotemi privati btn_Click
Dim row As Int =CustomListView1.GetItemFromView(Sender)
' aggiuge riga dopo il pulsante premuto
CustomListView1.Add(rowpnl,60dip,Riga)
'' aggiunge una riga prima di quella premuta
CustomListView1.InsertAt(riga, riga, 60dip,100dip)
End Sub
Come al solito Grazie per la tua presenza..... dipende li devo inserire o modificare ,dopo la modifica CustomListView1.RemoveAt(row) funziona, forse non è il modo coretto.
Come al solito Grazie per la tua presenza..... dipende li devo inserire o modificare ,dopo la modifica CustomListView1.RemoveAt(row) funziona, forse non è il modo coretto.
1) Per modificare i valore delle view contenute in un item della clv, devi fare come nel post #2: ottenere il pannello e da questo le view.
Per aggiungere un nuovo item, metti un tasto al di fuori della clv (nella Root, se stai usando B4XPages, altrimenti nell'Activity).
RemoveAt dovresti usarlo solo nel caso in cui volessi eliminare del tutto un item e basta.
P.S. Spesso non è nemmeno necessario fare come nel punto 1). Se ad esempio gli item contengono una lblDato di cui vuoi modificare il testo, in un determinato item, potrai sempre usare l'evento Click di lblDato:
B4X:
Private Sub lblDato_Click
Dim lbl As Label = Sender
lbl.Text = "Nuovo testo"
End Sub
Per aggiungere un nuovo item, metti un tasto al di fuori della clv (nella Root, se stai usando B4XPages, altrimenti nell'Activity).
RemoveAt dovresti usarlo solo nel caso in cui volessi eliminare del tutto un item e basta.
P.S. Spesso non è nemmeno necessario fare come nel punto 1). Se ad esempio gli item contengono una lblDato di cui vuoi modificare il testo, in un determinato item, potrai sempre usare l'evento Click di lblDato:
1) Per modificare i valore delle view contenute in un item della clv, devi fare come nel post #2: ottenere il pannello e da questo le view.
Per aggiungere un nuovo item, metti un tasto al di fuori della clv (nella Root, se stai usando B4XPages, altrimenti nell'Activity).
RemoveAt dovresti usarlo solo nel caso in cui volessi eliminare del tutto un item e basta.
riesco a modificare i dati contenuti nelle label direttamente dalla clv, il comando sender funziona per modificare il testo del pulsante stesso ma non per leggere i dati contenuti nelle label
riesco a modificare i dati contenuti nelle label direttamente dalla clv, il comando sender funziona per modificare il testo del pulsante stesso ma non per leggere i dati contenuti nelle label