Italian Custom List View, non capisco

SSDM71

Active Member
Licensed User
Longtime User
Ciao a tutti e non capisco come faccio con la classe custom list view a crearla e aggiungere immagine e bottone sotto. Sarei già contento se qualcuno postasse un esempio di come loro hanno usato questa classe. Proprio sto impazzendo.. mi sarebbe utilissima
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Ciao, ti ho creato un semplice progetto, te lo allego.
Comunque ti puoi basare anche sull'esempio che ha fatto Erel sul post.
 

Attachments

  • test_listview.zip
    472.3 KB · Views: 205

SSDM71

Active Member
Licensed User
Longtime User
Grazie, ho fatto sta cosa qua:
B4X:
        i=numeropost
    totalealt=0
    Do While i<>0
        lbltesto(i).Initialize("lbltesto"&i)
        lbltesto(i).Text=strpost(i)
        altezza=10%y
        'altezza = sutils.MeasureMultilineTextHeight(lbltesto(i),lbltesto(i).Text)
        'altezza=lbltesto(i).Height
        pannello(i).Initialize("p"&i)
        pannello(i).AddView(lbltesto(i),0,totalealt,100%x,altezza+2%y)
        pannello(i).Visible=True
        totalealt=totalealt+altezza+2%y
        csl.Add(pannello(i),altezza+2%y,"POST "&i)
        i=i-1
    Loop

Mi da un errore con "altezza = sutils.MeasureMultilineTextHeight(lbltesto(i),lbltesto(i).Text)", così ho messo "altezza=10%y", però quando finisce non mi fa vedere nulla... sai il perché?
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Nel frattempo che provo il tuo codice, potresti mettermi un like :p:p:p:p
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
Mancano delle cose su quel codice. Definizione di variabili e credo pure delle librerie create da te. Devi essere più preciso :D
 

SSDM71

Active Member
Licensed User
Longtime User
Ora si vede, ma come faccio a creare l'evento per un array di bottoni? li ho inizializzati tutti, ma come faccio a catturare l'evento in generale?
 

LucaMs

Expert
Licensed User
Longtime User
Ora si vede, ma come faccio a creare l'evento per un array di bottoni? li ho inizializzati tutti, ma come faccio a catturare l'evento in generale?

Immagino che tu intenda dire:
se io ho un button per ogni "item", come faccio a catturare l'evento per quello specifico tasto?

Semplicemente devi usare per tutti QUEI button lo stesso nome evento (poniamo che sia il tasto che l'evento vengano chiamati btnPremi) ed usare la "variabile interna di B4A" Sender per distinguere quale button sia stato premuto:

Sub bntPremi_Click
dim btnPremuto As Button = Sender
...
End Sub
 

SSDM71

Active Member
Licensed User
Longtime User
Io avevo pensato a una cosa stranissima con i tag, che mi complicano solo la vita

Quindi basta solo usare: Dim btnPremuto As Button = Sender? Credo ci voglia altro codice dietro no?

Grazie mille
 

LucaMs

Expert
Licensed User
Longtime User
Dipende da ciò che poi devi fare una volta che hai ottenuto il button.
In effetti il tag può essere molto utile e potrai usare, proseguendo con l'esempio precedente:

if btnPremuto.Tag = ...

Ti ricordo che il Tag può contenere qualunque tipo di oggetto, non solo testo o numeri, quindi anche un tuo tipo (type) personalizzato o un oggetto derivato da una tua classe oppure un oggetto List o Map o etc.
 

imgsimonebiliato

Well-Known Member
Licensed User
Longtime User
B4X:
Dim bt1, bt2 as button

bt1.Initialize("bt")
bt2.Initialize("bt")

Sub bt_click
Msgbox("ciao", "")
end sub

Adesso tutti e due i pulsanti bt1 e bt2 hanno lo stesso evento
 
Top