2017-07-17 11 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); 

私はそれがメモリカードコンストラクタのパラメータこのR.drawable.myImageとは何かを持っていると思いますが、なぜ?

+3

'ImageView'オブジェクトを送信するのではなく、' ImageView'を表示するために、次のアクティビティで必要なすべてのデータを保持するClassオブジェクトを送信するだけではどうですか? –

+1

"私のAppは動作を停止する" - LogCatを使ってクラッシュに関連するJavaスタックトレースを調べる "https://stackoverflow.com/questions/23353173/unfortunately-myapp-has-stopped-how-can-i-solve 'SecondActivity'は' MainActivity'のUIを直接変更する手段がありません。これは私の推測です。 – CommonsWare

答えて

1

ImageViewはシリアライズ可能ですか?オブジェクトがシリアル化できるのは、Serializableのすべてのメンバーが直列化可能である場合のみです。

+0

ImageViewをシリアル化できるようにすることはできますか? –

+3

@RamónWilhelmはimageviewではなくimage urlを渡します。 –

関連する問題