Italian Lettura dati da una CustomView

toro1950

Member
Licensed User
Buonasera, sono sempre io, è da qualche giorno che ho monopolizzato il forum, in una CustomView con due label (label1/label2) vengono visualizzati i due campi di un database, Grazie a Salvia cliccando sulla prima label riesco a recuperare il primo campo
Private sub label1_Click
Dim l As label = Sender
'Log("Riga " & listapaz.GetItemFromView(1) & " Colonna 1: " & l.text)
editnome.text= l.testo
end sub
Vorrei sapere se dopo aver cliccato è possibile leggere la seconda label che contiene il secondo campo senza cliccarci sopra e quindi evitare altro codice.
Mario
 

Sagenut

Expert
Licensed User
Longtime User
Certo che puoi
B4X:
Dim p as Panel = listapaz.GetPanel(listapaz.GetItemFromView(1))
Dim l2 As label = p.GetView(2)
Log("Riga " & listapaz.GetItemFromView(1) & " Colonna 2: " & l2.text)
Codice non testato scritto al volo.
Comunque poi và pulito il codice.
Così è un pó sporco.
Inoltre dovrai verificare se quel GetView(2) è corretto.
Ho provato ad immaginare.
 

toro1950

Member
Licensed User
Ho provato ma l'app esce senza alcun avviso, ed esce su questo codice
Dim p as Panel = listapaz.GetPanel(listapaz.GetItemFromView(1))
Per cercare di capire ho fatto questa prova
Dim p As Panel = listapaz.GetPanel(0)
l = p.GetView(1)
in questo modo mi restituisce la seconda colonna (quella che cerco) della prima riga, con listapaz.GetPanel(1) della la seconda riga ecc ,
quindi quando clicchiamo su una Label qualsiasi oltre al contenuto dovremmo avere il numero di riga, giusto?
questo valore dovrebbe darlo la variabile p, o sbaglio? in questo caso c'è qualcosa che non torna
Per info nella stessa BaxMainpage c'è un altro CustomView con 7 colonne
Mario
 

Sagenut

Expert
Licensed User
Longtime User
Il mio codice contiene errori.
Scrivere codice senza usare l'IDE e dopo aver bevuto non è consigliato. 🤣
Alcuni consigli:
Non lasciare mai i nomi delle view di default (Label1, ImageView2 e via dicendo).
Dai sempre nomi sensati per il dato che conterranno (lblUtente, lblDataAppuntamento....)
In ogni nome inizia con qualcosa che indichi il tipo di view o di variabile.
Esempio:
lbl = Label
iv = Imageview
int = Int
str = String
Negli esempi che ti ho postato non ho usato questo metodo e quindi ti ho indotto io in errore.
Questo ti aiuterà molto durante la digitazione e ti farà da filtro per trovare velocemente quello che ti serve.
IMPORTANTISSIMO!
Quando pubblichi del codice usa il tasto <\> e incolla in codice nella finestra che appare.
Il tasto lo trovi in alto a sinistra nel box dove scrivi il tuo messaggio.
 

LucaMs

Expert
Licensed User
Longtime User
Potresti gestire l'evento Click della CustomListView (*)


B4X:
Private Sub listapaz_ItemClick (Index As Int, Value As Object)
    Dim p As B4XView = listapaz.GetPanel(Index)
   
    Dim lblCampo1, lblCampo2 As Label ' o B4XView, se vuoi
   
    lblCampo1 = p.GetView(1)
    lblCampo2 = p.GetView(2)
   
    Log("Valori: " & lblCampo1.Text & TAB & lblCampo2.Text)
End Sub
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
(*) CustomView non ha senso.

Esistono View (analoghi ai controlli del vecchio VB6) che sono Custom, ovvero Personalizzate. Quindi Custom View può indicare una qualunque di queste.
(Puoi crearne anche tu stesso)

CustomListView è una Custom View specifica creata da Erel.
 

toro1950

Member
Licensed User
Grazie ragazzi, siete dei grandi e grazie anche per i consigli, l'applicazione ora è quasi finita devo aggiungere solo i controlli per errori dell'utente,
e miei, poi cercherò di svilupparla anche per Iphone, purtroppo per quest'ultimo ho avuto una brutta esperienza a pubblicare un'applicazione l'anno scorso, me l'hanno bocciata, anche se gratis ed era legata ad un mio sosftware per pc, perchè non ero autorizzato a pubblicare un'app del genere perché trattava dati personali, dovevo avere una partita iva ed essere iscritto a qualcosa che non ricordo, ora dovrò pagare nuovamente 92 euro, se non è aumentata e farlo a nome di mia moglie che ha una partita iva per sviluppo sosftware
 

Sagenut

Expert
Licensed User
Longtime User
Il problema dello sviluppo per iPhone sono solo i costi.
Ma prima o poi anche Google si adeguerà.
 
Top