私は、サッカーリーグにサインアップしたキッズを追跡する同僚向けの Android アプリを作成しています。現在、名簿を保存/シリアル化して後で逆シリアル化するのに問題があります。シリアライズしているオブジェクトは、Player オブジェクトの配列です。カスタム プレーヤー クラスは serializable を実装しているため、それらの配列はシリアル化しても問題ないはずです (私の知る限り)。
私のシリアル化/保存方法:
String ser = SerializeObject.objectToString(currentRoster.getRosterArray());
if (ser != null && !ser.equalsIgnoreCase("")) {
SerializeObject.WriteSettings(this, ser, "playerRoster"); //.dat extension
} else {
System.out.println("Object not saved");
SerializeObject.WriteSettings(this, "", "playerRoster");
}
私の逆シリアル化方法:
String ser = SerializeObject.ReadSettings(this, "playerRoster");
if (ser != null && !ser.equalsIgnoreCase("")) {
Object obj = SerializeObject.stringToObject(ser);
// Then cast it to your object and
if (obj instanceof Player[]) {
// Do something
loadedRoster = (Player[]) obj;
System.out.println(loadedRoster[0]);
}
}
私がアプリで取得している結果は、逆シリアル化されたときの配列内のすべてのプレーヤーの専門用語です。私の質問は、データを正しく保存してロードしているかどうか、または何かを忘れているかどうかです。(私はそれをきれいに保つためにフィラーコードと例外処理のいくつかを省略しました)助けてくれてありがとう!