Questo è il codicenon può passare un ArrayList <Parcelable> ad un'attività
ArrayList<MyObject> list = new ArrayList<MyObject>();
list.add(new MyObject());
Intent intent = new Intent(this, ReceiverActivity.class);
intent.putExtra("list", list);
startActivity(intent);
ReceiverActivity
List<MyObject> list = (List<MyObject>)getIntent().getExtras().getParcelable("list");
Ecco la lista è nullo. Anche questo non funziona:
List<MyObject> list = (List<MyObject>)getIntent().getExtras().getSerializable("list");
MyObject è Parcelable, ho implementato tutti i metodi richiesti. Immagino che questa implementazione non sia il problema, perché altrimenti riceverei altri tipi di eccezioni. Ma non ottengo nulla oltre alla lista è nullo.
Grazie in anticipo ...
Ora ho trovato questo:
List<Parcelable> list = (List<Parcelable>)getIntent().getParcelableArrayListExtra("list");
che deve essere utilizzato nell'attività ricevente, ma come faccio a inviare e come faccio ad avere List<MyObject>
da List<Parcelable>
?
Il metodo getParcelableArrayListExtra mi dà ArrayList Come faccio ad avere ArrayList ? Sembra che devo lanciare sugli elementi, o creare un'istanza di una nuova copia con tipo ArrayList ? –
Ixx
i tuoi oggetti devono essere implementati Parcelable. Quindi dovrebbero andare bene – Akhil
Non è possibile lanciarli perché sono in una lista e i generici non sono covarianti. – Ixx