Italian Lettura dati da una CustomView

toro1950

Active 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

Active 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:

toro1950

Active 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