Maison >Java >javaDidacticiel >Comment réussir à transmettre des données, y compris des bitmaps et des listes, entre des activités dans Android à l'aide de sérialisable ?

Comment réussir à transmettre des données, y compris des bitmaps et des listes, entre des activités dans Android à l'aide de sérialisable ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-10 06:07:10419parcourir

How to Successfully Pass Data, Including Bitmaps and Lists, Between Activities in Android Using Serializable?

Transmission de données via une intention à l'aide de Serialisable : résolution des problèmes courants

L'utilisation de Serialisable est une approche permettant de transmettre des données entre des activités dans des applications Android. Cependant, des problèmes peuvent survenir lors de la mise en œuvre. Voici comment résoudre les problèmes les plus courants.

Problème :

L'implémentation sérialisable ne fonctionne pas pour une classe personnalisée contenant Bitmap.

Solution :

Assurez-vous que Bitmap est sérialisable en ayant une classe Bitmap personnalisée qui implémente Serialisable ou trouvez d'autres moyens de le représenter et de l'envoyer.

Problème supplémentaire :

La transmission d'une liste d'objets miniatures personnalisés via Intent.putExtra échoue.

Solution :

Utilisez Bundle.putSerializing au lieu de Intent.putExtra pour transmettre la liste sérialisable. Le Bundle doit être récupéré à l'aide de getIntent().getExtras(), et la liste est accessible à l'aide de getSeriallessly.

Code révisé :

// Prepare the Bundle
Bundle bundle = new Bundle();
bundle.putSerializable("value", all_thumbs);

// Pass the Bundle to the Intent
intent.putExtras(bundle);

// Retrieve the Bundle in the receiving Activity
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();

// Retrieve the serializable list
List<Thumbnail> thumbs =
    (List<Thumbnail>) bundle.getSerializable("value");

En utilisant Bundle.putSerializing et en le récupérant correctement, vous pouvez transmettre avec succès une liste d'objets sérialisables via une intention. N'oubliez jamais d'implémenter l'interface Serialisable ou d'utiliser un mécanisme de transfert de données compatible lorsque vous utilisez des objets personnalisés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn