Cannot pass selfmade serializable object to anothe

2019-08-22 02:00发布

问题:

I created an object which contains data fields of the types ImageView, boolean and Integer.

public class MemoryCard implements View.OnClickListener, Serializable {

    private ImageView image;
    private int id;
    private int nr;
    private boolean clicked = false;
    private int cardBack;
    private int cardFront;

    public MemoryCard(Context context, int id, int nr, int cardFront)
    {
        this.id = id;
        this.nr = nr;
        this.cardBack = R.drawable.backside;
        this.cardFront = cardFront;
        this.image = new ImageView(context);
        this.image.setImageResource(this.cardBack);
        this.image.setOnClickListener(this);
    }
}

When I start to send an object from MainActivity to SecondActivity then an error occurs and my App stops running.

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

intent.putExtra("object", new MemoryCard(this, 0, 0, R.drawable.myImage));

startActivity(intent);

I think it has something to do with the parameters this and R.drawable.myImage of the MemoryCard constructor but why?

回答1:

Is ImageView serializable? An object if serializable only if it implements Serializable and all its members are serializable.