0

以下のコードスニペットに示すように、LinearLayoutを拡張するクラスをシリアル化しました。デシリアライズ中に、上記の例外が発生します。このリンクのように、ImageViewをシリアル化することはできません(他のすべてのビューについても推測します)。それで、これに代わるものはありますか、それともSQLiteデータベース自体に行く必要がありますか?提案や手がかりをいただければ幸いです。

public class MyClass extends LinearLayout implements java.io.Serializable {


private static final long serialVersionUID = 1L;

private String mThemeImageName;
private ArrayList<STCharacter> mCharacterList;
private String mStoryText;
private int mSceneNumber;
private boolean mIsSceneHasCharacters;

public STScene(Context context) {
    super(context);
}

public STScene(Context context, AttributeSet attrs) {
    super(context, attrs);
}

//getters and setters below
4

1 に答える 1

1

ここでの問題は、「単純な」データ クラスを LinearLayout のフィールドとして使用する代わりに、複雑なクラスをシリアル化/逆シリアル化しようとすることだと思います。

そのため、シリアル化/逆シリアル化 (および個別にテスト) できるデータ ホルダー (クラス) を導入し、これを線形レイアウトのプロパティとして追加します。

于 2013-03-19T09:12:14.430 に答える