2017-07-17 18 views
0

我创建了一个包含ImageView,boolean和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); 
    } 
} 

当我开始发送一个对象从MainActivity到SecondActivity,然后发生错误,我的应用程序停止运行。

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

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

startActivity(intent); 

我认为这是与参数MEMORYCARD构造R.drawable.myImage但为什么呢?

+3

为什么不直接发送在下一个Activity中保存所有必需数据的Class对象来显示'ImageView'而不是发送'ImageView'对象? –

+1

“我的应用程序停止运行” - 使用LogCat检查与您的崩溃相关的Java堆栈跟踪“:https://stackoverflow.com/questions/23353173/unwanted-myapp-has-stopped-how-can-i-solve正如其他人指出的那样,很可能是因为无法序列化,而在'ImageView'上崩溃.' SecondActivity'没有直接修改'MainActivity'的UI的方法,这是我对你的猜测试图在这里完成 – CommonsWare

回答

1

ImageView可串行化吗?一个对象,如果只有它实现了可序列化的对象Serializable它的所有成员都是可序列化的。

+0

是否有可能使ImageView可串行化? –

+3

@RamónWilhelm传递图像url而不是imageview –

相关问题