6
votes

Android, comment mettre une arrayliste dans une intention?

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?

(objet est une classe que j'ai créée)

Merci d'avance.


0 commentaires

4 Réponses :


1
votes

Habituellement, vous utilisez Bundle 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.


2 commentaires

ArrayList peut être envoyé en utilisant Bundle


Il a précisément indiqué qu'il souhaitait envoyer une arrayliste de ses propres objets, pas des cordes.



1
votes

Votre classe MyObject 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


0 commentaires

6
votes

Si vous effectuez votre classe d'objet implémenter Parcolabel Vous pouvez emballer votre ArrayList dans le paquet que vous envoyez avec l'intention

voir Ce lien pour un exemple


2 commentaires

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



0
votes

J'ai utilisé comme ça.

Met: strong> p> xxx pré>

obtenez: 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;
       }
}


0 commentaires