3 votes

Passer une liste de tableaux d'une activité à un fragment de liste ?

J'essaie de mettre en place une mise en page par fragments. J'ai une activité qui sert de SplashScreen, récupère des données sur le web et crée une liste d'objets personnalisés.

Normalement, si j'utilisais un ListView, je ferais simplement ce qui suit.

private ArrayList<Articles> articles;

private void isComplete() {
         Intent intent = new Intent(SplashScreen.this, ListActivity.class);
         intent.putExtra("data", articles);
         startActivity(intent);
         finish();
    }

Comment puis-je transmettre les mêmes données à un fragment ? Votre aide est très appréciée.

3voto

Parag Chauhan Points 11830

C'est simple, prenez une classe mondiale Et declare public static ArrayList<Articles> articles = new ArrayList<Articles>; Dans l'activité principale Global.articles = articles ; Vous pouvez maintenant l'utiliser partout dans le projet.

2voto

Agarwal Shankar Points 14558

Cela dépend du type de liste de tableaux

  • putIntegerArrayListExtra(String name, ArrayList value)

  • putParcelableArrayListExtra(String name, ArrayList value)

  • putStringArrayListExtra(String name, ArrayList value)

  • putCharSequenceArrayListExtra(String name, ArrayList value)

Vous pouvez ensuite lire l'activité suivante en remplaçant put par get avec la chaîne clé comme argument, par exemple

myIntent.getStringArrayListExtra("arrayPeople");

-2voto

Agarwal Shankar Points 14558

Utiliser putExtra pour transmettre une valeur à une intention. utiliser la méthode getSerializableExtra pour récupérer les données.

Si j'ai deux activités A et B et que je veux passer une valeur ArrayList> à l'activité B, j'utiliserai le code suivant dans la classe A

Transmettre les données ArrayList> de l'activité A à l'activité B

Intent intent = new Intent(this, B.class);
HashMap<String, String> hm = new HashMap<String, String>();
hm.put("sunil", "sahoo");
ArrayList<HashMap<String, String>> arl = new ArrayList<HashMap<String, String>>();
arl.add(hm);
intent.putExtra("arraylist", arl);
startActivityForResult(intent, 500);

Récupérer la valeur de l'activité B

Dans la classe B, j'écrirai le code suivant pour récupérer les données

ArrayList<HashMap<String, String>> arl =(ArrayList<HashMap<String, String>>) getIntent().getSerializableExtra("arraylist");
System.out.println("...serialized data.."+arl);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X