Italian List e Array - Creazione List da Array

Antonio1

Member
Licensed User
Longtime User
Grazie per il benvenuto e approfitto per chiedere lumi sulla seguente questione:

Sto studiando le List e ho incontrato questa difficoltà:
Voglio salvare un array in una list. ( e continuare ad accodare...)

in
Sub Globals
Dim rubrica(2) as String ' ho dichiarato un array di lunghezza-indice (2)
Dim List1 as List ' dichiarato la lista

in
Sub Activity_Create(FirstTime As Boolean)
.......
list1.Initialize2(rubrica) ' ho inizializzato la list1

in
Sub Salva_in_list_Click ' evento click del bottone salva in list
rubrica(0)="dato 0" ' associo i dati alle variabili array
rubrica(1)="dato 1"
list1.AddAll(rubrica) ' aggiungo alla lista il contenuto dell'array rubrica

B4A compila regolarmente ma in fase di lancio dell'app quando provo a salvare mi da errore - Unsupported Operazion Exception-

Sbaglio sicuramente qualcosa ma è da un paio di ore che ci perdo la testa
Per me è fondamentale capire tale meccanismo che è utilissimo per la manipolazione dei dati in modo dinamico, anche per le matrici ecc.

Sto seguendo la guida Beginners Guide e per il caso semplice di un solo valore
Dim List1 As List
List1.Initialize
...
List1.Add(Value)
....
da accodare in list non ho alcun problema a leggere e a scrivere anche su file.

Grazie a quanti mi potranno aiutare.

Ciao
 

genesi

Active Member
Licensed User
Longtime User
.......
list1.Initialize2(rubrica) ' ho inizializzato la list1
Qui sta l'inghippo con initialize2 in pratica agganci , per capirci , l'array togli l'istruzione addall , i valori sono già nella lista
Mario
 

Antonio1

Member
Licensed User
Longtime User
Grazie Mario
Sei stato chiaro.
Credo di aver capito:
l'istruzione : List1.Initialize2(SomeArray) rende l'indice della lista fisso alla dimesione dell'array per cui non è più possibile aggiungere altro.

la lista resta dinamica aggiungendo/modificando/cancellando un valore alla volta o aggiungendo una intera altra List...

mi ero fatto un convincimento sbagliato vedendo l'istruzione

List1.AddAll(List2)
List1.AddAll(Array As Int(1, 2, 3, 4, 5))

List1.AddAll(12, List2)
List1.AddAllAt(12, Array As Int(1, 2, 3, 4, 5))

ma in questo caso non viene utilizzato "Inizialize2" per List2...

Grazie ancora

Antonio
 
Top