La transmission des données par le biais de l'intention à l'aide de Serializable

J'ai mis en place ma classe avec serializable, mais il ne fonctionne toujours pas.

C'est ma classe:

package com.ursabyte.thumbnail;

import java.io.Serializable;

import android.graphics.Bitmap;

public class Thumbnail implements Serializable {

    private static final long serialVersionUID = 1L;
    private String label = "";
    private Bitmap bitmap;

    public Thumbnail(String label, Bitmap bitmap) {
        this.label = label;
        this.bitmap = bitmap;
    }

    public void set_label(String label) {
        this.label = label;
    }

    public String get_label() {
        return this.label;
    }

    public void set_bitmap(Bitmap bitmap) {
        this.bitmap = bitmap;
    }

    public Bitmap get_bitmap(){
        return this.bitmap;
    }

    // @Override
    // public int compareTo(Thumbnail other) {
    //     if(this.label != null)
    //         return this.label.compareTo(other.get_label());
    //     else
    //         throw new IllegalArgumentException();
    // }

}

C'est ce que je veux passer.

List<Thumbnail> all_thumbs = new ArrayList<Thumbnail>();
all_thumbs.add(new Thumbnail(string, bitmap));
Intent intent = new Intent(getApplicationContext(), SomeClass.class);
intent.putExtra("value", all_thumbs);

Mais encore il ne fonctionne pas. Je ne sais pas comment utiliser Parcelable, j'ai donc utiliser ce lieu.

  • Bitmap classe n'implémente pas Serializable. Vous devez utiliser Parcelable ici. Cependant, ce n'est pas une bonne idée de passer des bitmaps à l'aide de Parcelable...
  • qu'en tableau d'octets? il implémente Serializable?
  • oui, mais être prudent avec les objets de grande taille. L'intention a une limite de taille pour les extras
  • ou vous pouvez ajouter transitoire avant bitmap comme ce private transient Bitmap bitmap;