Italian scrollview .... gioie ... se riesce .... ma dolore da 2 gg !

Roberto Tsolakis

Member
Licensed User
Longtime User
B4X:
Private Label1 As Label
Private ScrollView1 As ScrollView
Private Button1 As Button
Private Panel1 As Panel
  
Dim labels(15) As Label


ScrollView1.Initialize(1000dip)
Activity.AddView(ScrollView1, 0%x,10%y,100%x,80%y)
ScrollView1.Panel.Width=200%x
ScrollView1.Panel.Height=100%y 

For a = 0 To 15 
  labels(a).Initialize("")
  ScrollView1.panel.AddView(labels(a), 0dip ,0dip +a * 10,30%x,10%y)
  labels(a).Text=a
Next

La cosa dovrebbe essere semplice .... inserire 16 label in cascata in uma scrollview ...

Questo è l'errore:
(ArrayIndexOutOfBoundsException) java.lang.ArrayIndexOutOfBoundsException: length=15; index=15


Negli esempi dello Scrollview, viè questo che bene o male è quello che vorrei fare, ma la soluzione usata mi piace poco, poichè vorrei usare degli oggetti creati da codice e non da Designer.
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
ma dolore da 2 gg !

e quando ti dirò l'errore... altro dolore, perché è una stupidata :D

Dim labels(15) As Label
significa labels da 0 a 14.

For a = 0 To 15


:)

Ti conviene evitare il più possibile i "literal" (valori scritti direttamente, come 15, in questo caso) e usare invece delle variabili o costanti oppure, in questo caso:
labels.Length - 1
 
Last edited:

Roberto Tsolakis

Member
Licensed User
Longtime User
Due giorni ovviamente era un modo di dire :)
Diciamo che la mia giornata creativa (in questo periodo che ho la famiglia al mare ed eccetto la domenica che posso fare qualche ora in più) è dalle 18:30 alle 23:30 (faccio tutt'altro lavoro).



Premesso ciò ... FUNZIONA!!!!
E pensare che tra le varie modifiche avevo fatto avevo anche usato oggetti senza dichiarazione, poichè con vb.net le usavo sempre e solo cosi ...
ma avrò fatto un errore da qualche altra parte.
Molti errori per fortuna riesco a visualizzarli grazie al comando LOG ... e al modulo di servizio (con la gestione di errori che ha messo Erel nella nuova versione ma se sei una capra come me ... non c'è niente da fare ... c'è solo il FORUM! )

Quando, invece, chiedevo qualcosa nel forum di VB.NET ... le risposte solite erano : "Perchè non ti vai a leggere il manuale ?"
 

Roberto Tsolakis

Member
Licensed User
Longtime User
Dim giorniDellaSettimana() as string

come la incremento ?
Gli unici esempi che ho visto, hanno degli incrementi obbligati (alla fine indicizzati se vogliamo), tipo :

GiorniDellaSettimana = array as string ("Lun","Mar","Mer","Gio","Ven","Sab","Dom")

Ma ammettiamo che la variabile siano linee provenienti da un file testuale, come inserire le varie linee testuali nell'array non indicizzato?
Mi sorge spontaneo il dover utilizzare un list.

Inoltre ...

Le array su B4A sono anidabil ? In questo caso si dovrebbe usare un Map ?


Grazi per degli esempi TERRA TERRA senza fronzoli :)
 

Roberto Tsolakis

Member
Licensed User
Longtime User
Mi viene quasi da pensare a :

B4X:
Dim ListaFile as string
ListaFile = array as string (File.OpenInput(File.DirDefaultExternal, "Nome_File.txt"  )

E ok ... ma ammettiamo che non ho un qualcosa di definito ... che aumenta man mano che va il programma
 
Top