1. ホーム
  2. java

Parcelableクラスからのjava.util.Dateの読み出しと書き込み

2023-07-20 06:36:48

質問

Parcelableクラスで作業しています。どのように私は読み、書くことができます java.util.Date オブジェクトを読み書きすることができますか?

どのように解決する?

使用方法 writeSerializable ここで、DateはSerializableです。( しかし、良いアイデアではありません。別のよりよい方法については以下を参照してください。 )

@Override
public void writeToParcel(Parcel out, int flags) {
   // Write object
   out.writeSerializable(date_object);

}

private void readFromParcel(Parcel in) {
   // Read object
    date_object = (java.util.Date) in.readSerializable();

}


しかし、シリアライズ処理は多くのパフォーマンスを消費します。これを克服するには 克服できるでしょうか?

ということで、日付を書くときにLongに変換して、Longを読み込んでDateコンストラクタに渡してDateを取得するのが良い使い方です。以下のコードを参照してください。

   @Override
    public void writeToParcel(Parcel out, int flags) {
       // Write long value of Date
       out.writeLong(date_object.getTime());

    }

    private void readFromParcel(Parcel in) {
       // Read Long value and convert to date
        date_object = new Date(in.readLong());

    }