Autore Topic: Passaggio di un ArrayList di Object contenenti ArrayList  (Letto 977 volte)

Offline theberserk

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend Rooted with Froyo and Sense
  • Sistema operativo:
    Windows with Eclpise plugin
Passaggio di un ArrayList di Object contenenti ArrayList
« il: 16 Febbraio 2011, 11:42:25 CET »
0
Ciao a tutti, sto impazzendo da stamattina per un problema che ho passando via intent un arrayList; mi viene restituito

Citazione
02-16 09:03:41.540: ERROR/AndroidRuntime(480): java.lang.RuntimeException: Unable to start activity ComponentInfo{it.crisp.reports/it.crisp.reports.ViewSetActivity}: java.lang.NullPointerException

02-16 09:03:41.540: ERROR/AndroidRuntime(480):     at it.crisp.reports.ViewSetActivity.onCreate(ViewSetActivity.java:22)

di cui rispettivamente questa è la parte relativa alla chiamata:
Codice (Java): [Seleziona]
case VIEW_OPTION_MENU:
                        intentSet = sets.get(setId);
                        vDebug("id del set " + setId);
                        Intent viewIntent = new Intent(this, ViewSetActivity.class);
                        viewIntent.putExtra(pkg + ".setName", intentSet.getName());
                        vDebug("name del set " + intentSet.getName());
                        viewIntent.putExtra(pkg + ".setColumns", intentSet.getColumns());
                        startActivity(viewIntent);
                        return true;

e questo è quando vado a leggere i dati
Codice (Java): [Seleziona]
public class ViewSetActivity extends Activity {
       
        private DataSet set;
        private String pkg;
        private TextView title;
       
        @SuppressWarnings("unchecked")
        public void onCreate(Bundle savedInstanceState) { // Riga 22 che causa l'errore
                super.onCreate(savedInstanceState);
                setContentView(R.layout.dataset_layout);
                pkg = getPackageName();
                Intent data = getIntent();
                set.setColumns((ArrayList<Column>)data.getSerializableExtra(pkg + ".setColumns"));
                set.setName(data.getStringExtra(pkg + ".setName"));
                title = (TextView) findViewById(R.id.dataset_view_title);
                title.setText(set.getName());
        }
}


le due strutture dati che utilizzo sono:
Codice (Java): [Seleziona]
public class Column implements Serializable {
       
        private static final long serialVersionUID = -5984769354126153171L;
        private String name;
        private String type;
        private ArrayList<ColumnData> columnData;
       
        public void setName(String name) {
                this.name = name;
        }
        public String getName() {
                return name;
        }
        public void setType(String type) {
                this.type = type;
        }
        public String getType() {
                return type;
        }
        public void setColumnData(ArrayList<ColumnData> columnData) {
                this.columnData = columnData;
        }
        public ArrayList<ColumnData> getColumnData() {
                return columnData;
        }
       
       
}

ed
Codice (Java): [Seleziona]
import java.io.Serializable;

public class ColumnData implements Serializable {
         /**
         *
         */

        private static final long serialVersionUID = 1281420085186031268L;
        /**
         *
         */

       
        private String type;
     private String value;
     private String classe;
         
     public String getType() {
             return type;
     }

     public void setType(String type) {
             this.type = type;
     }

     public String getValue() {
             return value;
     }

     public void setValue(String value) {
             this.value = value;
     }

     public String getClasse() {
             return classe;
     }

     public void setClasse(String classe) {
             this.classe = classe;
     }
     
    /* @Override
     public String toString() {
             return "MyNote [id=" + id  + ", from=" + from + ", to=" + to +", heading="
                             + heading + ",body=" + body+ "]";
     }*/

}

spero di avere messo tutto.
Ovviamente nel manifest ho dichiarato tutte e due le activities
« Ultima modifica: 16 Febbraio 2011, 13:52:05 CET da theberserk »

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Passaggio di un ArrayList di Object contenenti ArrayList
« Risposta #1 il: 16 Febbraio 2011, 11:54:53 CET »
0
E quale sarebbe la linea 22?

Offline theberserk

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend Rooted with Froyo and Sense
  • Sistema operativo:
    Windows with Eclpise plugin
Re:Passaggio di un ArrayList di Object contenenti ArrayList
« Risposta #2 il: 16 Febbraio 2011, 12:37:33 CET »
0
Scusami hai perfettamente ragione!!!!
La riga 22 è la onCreate della seconda Activity, quella che riceve l'intent

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Passaggio di un ArrayList di Object contenenti ArrayList
« Risposta #3 il: 16 Febbraio 2011, 13:11:16 CET »
0
Scusami hai perfettamente ragione!!!!
La riga 22 è la onCreate della seconda Activity, quella che riceve l'intent

Si ok ma che istruzione c'è a quella riga?

Offline theberserk

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend Rooted with Froyo and Sense
  • Sistema operativo:
    Windows with Eclpise plugin
Re:Passaggio di un ArrayList di Object contenenti ArrayList
« Risposta #4 il: 16 Febbraio 2011, 13:51:48 CET »
0
Te l'ho evidenziata con un commento nella funzione che ho scritto sopra, così è più facile capire il riferimento

Offline theberserk

  • Nuovo arrivato
  • *
  • Post: 19
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    HTC Legend Rooted with Froyo and Sense
  • Sistema operativo:
    Windows with Eclpise plugin
Re:Passaggio di un ArrayList di Object contenenti ArrayList
« Risposta #5 il: 16 Febbraio 2011, 14:53:42 CET »
0
Hmmm l'ho risolta passando per vie traverse, ho creato un Bundle in cui ho messo tutto quello che mi interessava e adesso va.
Inoltre ho notato che avevo fatto la porcata di non inizializzare un nuovo oggetto di DataSet nella seconda activity.
Sono andato in pappa quando le cose hanno iniziato a non andare, grazie ancora.