Italian Problema List

Fulvio75

Well-Known Member
Licensed User
ciao a tutti ho un problema con una List ovvero

dim x as list

x.initialize

x = y la popolo con dei numeri esistenti contenuti in una list esistente y

se alla x.add(100) va in errore non mi fa aggiungere un ulteriore numero (100)

nel log compare questo:
java.lang.UnsupportedOperationException

perché?
grazie
 

Star-Dust

Expert
Licensed User
Longtime User
ciao a tutti ho un problema con una List ovvero

dim x as list

x.initialize

x = y la popolo con dei numeri esistenti contenuti in una list esistente y

se alla x.add(100) va in errore non mi fa aggiungere un ulteriore numero (100)

nel log compare questo:
java.lang.UnsupportedOperationException

perché?
grazie
Genera questo errore se Y non è una lista, forse è un Array o una ListView?
 

Fulvio75

Well-Known Member
Licensed User
No y è una list popolata con dei valori presi da un db, poi x=y e se aggiungo a x dei valori va in errore.
Idem y, una volta popolata se tento di aggiungerci dei valori va in errore
 

Star-Dust

Expert
Licensed User
Longtime User
Dovremmo vedere più codice.

Come popoli Y ad esempio.
 

LucaMs

Expert
Licensed User
Longtime User
No y è una list popolata con dei valori presi da un db, poi x=y e se aggiungo a x dei valori va in errore.
Idem y, una volta popolata se tento di aggiungerci dei valori va in errore
Non riguarda l'errore, ma nota che se imposti
x = y
che sono oggetti (List)
se vai ad aggiungere (o togliere) un elemento ad x, lo fai automaticamente anche ad y (e viceversa).
 

Star-Dust

Expert
Licensed User
Longtime User
È sbagliato il comando. Casomai sarebbe ExecuteNonQuery e comunque non essendo un comando query non restituisce nulla.
Cono Select si chiama un metodo query, con Update, Insert o Create una Non Query

Sei sicuro che mi stai copiando il codice sorgente giusto?
 

Fulvio75

Well-Known Member
Licensed User
È sbagliato il comando. Casomai sarebbe ExecuteNonQuery e comunque non essendo un comando query non restituisce nulla

Sei sicuro che mi stai copiando il codice sorgente giusto?
Scusa ho sbagliato appena ho sotto mano il codice lo posto
 

Star-Dust

Expert
Licensed User
Longtime User
Ma stai programmando in B4A o B4J?
 

Fulvio75

Well-Known Member
Licensed User
Non riguarda l'errore, ma nota che se imposti
x = y
che sono oggetti (List)
se vai ad aggiungere (o togliere) un elemento ad x, lo fai automaticamente anche ad y (e viceversa).
Anche se sono due variabili diverse?
 

Star-Dust

Expert
Licensed User
Longtime User
Anche se sono due variabili diverse?
Si, non sono variabili ma puntatori, le variabili sono solo per le dichiarazioni di tipo base (int,float,byte,..)
 

Fulvio75

Well-Known Member
Licensed User
Se aggiungo a y dei numeri tipo in un ciclo
For i = 0 to 100
Y.add(i)
Next
Funziona
Ma se dopo aver eseguito il ciclo for tento di aggiungerci un altro numero e richiamo y.add (101) genera l'errore
 

LucaMs

Expert
Licensed User
Longtime User
prima del ciclo scrivi
Log(GetType(Y))

e comunque è come ti ho detto, se inizializzi una list "precaricandola" (Dim MiaList As List - MiaList.Initialize(1,2,3)) è come se la trasformassi in un array, di dimensioni fisse - 3 in questo esempio. Perde TUTTE le caratteristiche / funzionalità di una List.
 

Fulvio75

Well-Known Member
Licensed User
prima del ciclo scrivi
Log(GetType(Y))

e comunque è come ti ho detto, se inizializzi una list "precaricandola" (Dim MiaList As List - MiaList.Initialize(1,2,3)) è come se la trasformassi in un array, di dimensioni fisse - 3 in questo esempio. Perde TUTTE le caratteristiche / funzionalità di una List.
Non è inizializzato così
X.initialize() cosi
 

Star-Dust

Expert
Licensed User
Longtime User
Se aggiungo a y dei numeri tipo in un ciclo
For i = 0 to 100
Y.add(i)
Next
Funziona
Ma se dopo aver eseguito il ciclo for tento di aggiungerci un altro numero e richiamo y.add (101) genera l'errore
B4X:
Dim X As List
X.Initialize
X.AddAll(Y)
X.Add(100)

Non hai postato ancora il codice corretto di come popoli la lista Y
 
Top