J'ai deux activités A & B. Dans A j'ai trois ArrayLists. Je veux accéder à ces ArrayLists dans l'activité B. Comment puis je faire ça? Ces deux activités sont dans le même paquet.Comment utiliser les données dans différentes activités?
Répondre
Pour répondre à votre question - que vous pourriez avoir facilement trouvé la réponse par la recherche stackoverflow - si vous devez passer un ArrayList que vous pouvez faire comme ceci:
ArrayList<String> list = new ArrayList<String>();
list.add("hello");
Bundle b = new Bundle();
b.putSerializable("myList", list);
Intent myIntent = new Intent(this, ActivityB.class);
myIntent.putExtras(b);
startActivity(myIntent);
Et ActivityB:
Intent myIntent = this.getIntent();
ArrayList<String> list = (ArrayList<String>) myIntent.getSerializableExtra("myList");
Vous ne pouvez probablement pas y accéder directement. Habituellement, seulement 1 activité peut être au premier plan. Essayer d'accéder à des éléments dans une activité en arrière-plan (comme vous liste dans A de l'acitve B) est un mauvais choix de conception.
Je pense que vous avez besoin de stocker les données de ces listes dans un emplacement commun:
- les faire parcelable et de les stocker en vous les préférences de votre application
- les stocker dans un SQLite db
- les transmettre Pour l'activité B via l'intention de départ
De plus, peut-être vous n'avez pas besoin de passer toutes les listes à B, peut-être que vous n'avez besoin que d'une partie d'entre elles, considérez cela aussi.
Si j'ai besoin de passer une partie des données à B alors ça peut être fait ??? –
Vous devez les mettre en tant que données supplémentaires. Instanciez un nouvel objet Intent, puis utilisez putInt(), putString(), etc. pour cela. Utilisez ensuite cet instant pour lancer l'activité B. –
* make them parcelable and store them in you app's preferences * store them in a SQLite db * pass them to Activity B via the starting Intent
Il est faux. Wrong je veux dire dans un sens que pas besoin de stocker l'objet Parcelable dans le stockage persistant, puisque dès que vous faites l'objet Parcelable - une autre activité peut accéder à l'objet sans sérialisation (d'ailleurs la sérialisation n'est pas recommandée). Android docs read:
Conteneur pour un message (données et références d'objet) pouvant être envoyé via un IBinder. Une parcelle peut contenir à la fois des données aplaties non flattées de l'autre côté de l'IPC (en utilisant les différentes méthodes ici pour écrire des types spécifiques, ou l'interface Parcelable générale), et des références à des objets IBinder vivants qui aboutiront à l'autre côté un proxy IBinder connecté avec l'IBinder d'origine dans le colis.
La parcelle n'est pas un mécanisme de sérialisation à usage général. Cette classe (et l'API Parcelable correspondante pour placer des objets arbitraires dans une parcelle) est conçue comme un transport IPC haute performance. En tant que tel, il n'est pas approprié de placer des données de parcelle dans un stockage persistant: des modifications dans l'implémentation sous-jacente de l'une des données dans la parcelle peuvent rendre les données plus anciennes illisibles.
- 1. Utiliser différentes activités pour différentes vues dans un ViewFlipper
- 2. Comment échanger des données (objets) entre différentes activités Android?
- 3. Android: Pourquoi ne pas utiliser les activités dans les onglets?
- 4. transmettre des données entre les activités
- 5. Transmission de données entre les activités dans Android
- 6. Comment nettoyer correctement les récepteurs d'emplacement dans les activités
- 7. sur les activités dans Android
- 8. Android: Comment transmettre les données à des sous-activités?
- 9. Comment effacer toutes les activités dans l'application Android
- 10. Plusieurs boutons Facebook Like (différentes activités) sur une seule page?
- 11. Comment soustraire des données dans différentes lignes
- 12. Comment utiliser les données Matlab dans R?
- 13. Comment obtenir des paramètres entre les activités?
- 14. Comment: plusieurs activités dans une même vue?
- 15. Android Service- comment communiquer avec les activités
- 16. Quand utiliser les mises en page et quand utiliser les activités?
- 17. Base de données Android SQLite partagée entre les activités
- 18. Activités Design dans Android?
- 19. Flex: Comment utiliser flashvars de différentes classes
- 20. Différentes données pour des dates différentes
- 21. utiliser deux barres uitab différentes dans l'application
- 22. Commutation d'activités/transmission de données entre activités
- 23. Partage de données entre activités et services
- 24. Comment utiliser les données externes dans les tests unitaires?
- 25. Différentes façons d'observer les changements de données
- 26. Enregistrement de l'état entre les activités
- 27. Comment utiliser différentes classes juste un functionsone
- 28. Comment faire pour arrêter les messages et les activités toast
- 29. Comment puis-je utiliser deux bases de données différentes avec Linq to SQL dans Linqpad?
- 30. Comment passer les contrôles utilisateur MVC Données différentes
merci un lotttttt –