J'ai deux activités, dans la première, j'instanche une arrayliste d'objet MyObject. Dans la deuxième activité, j'ai besoin d'obtenir cette arraylist. Je ne sais pas comment faire ça avec une intention? P>
(objet est une classe que j'ai créée) p>
Merci d'avance. P>
4 Réponses :
Habituellement, vous utilisez Bundle code>
Objets Passer des informations entre les activités, mais ne permettent que des objets de type simples. Généralement, pour passer des types d'objets plus complexes, vous devez généralement construire un contexte statique d'une sorte et définir vos valeurs à ce sujet, qui est ensuite disponible pour la deuxième activité. Il se sent sale, mais je l'ai surmonté dans mes applications maintenant. P>
ArrayList
Il a précisément indiqué qu'il souhaitait envoyer une arrayliste de ses propres objets, pas des cordes.
Votre classe MyObject code> devra mettre en œuvre Parcelable < / a>. Ensuite, vous pouvez utiliser putparcelablearraylistextra de votre intention de le transmettre à l'activité suivante et récupérer la liste avec getparcelablearraylistextra p>
Si vous effectuez votre classe d'objet implémenter Parcolabel Vous pouvez emballer votre ArrayList dans le paquet que vous envoyez avec l'intention p>
voir Ce lien pour un exemple p>
Merci gekha, ça marche presque. J'ai un problème avec un élément de mon objet. C'est une liste d'objet d'une autre classe que j'ai mise en œuvre. J'ai lu dans votre exemple que j'ai besoin d'utiliser "Readlist (Liskinstance, .Class.getClassloader ());", mais je reçois une exception NullPoinger sur la ligne. Je veux juste savoir comment j'ai besoin exactement d'écrire cela.
Vous devrez également faire votre autre classe Parolarbel et emballer avec écritypedlist
J'ai utilisé comme ça.
Met: strong> p> public class SelectedTask implements Serializable{
}
public class DataWrapper implements Serializable{
private ArrayList<SelectedTask> slist;
public DataWrapper(ArrayList<SelectedTask> data) {
this.slist = data;
}
public ArrayList<SelectedTask> getList() {
return this.slist;
}
}