5

アクティビティの 1 つにファイルがあり、それに書き込みます (ログ ファイルのようなもの)。それを別のアクティビティに渡し、他の情報を追加したいと思います。どうすればいいですか?Parcelable オブジェクトについて聞いたことがありますが、それが正しい解決策かどうかはわかりません。

4

1 に答える 1

1

Appicaltion クラスに変数を格納することは、適切な OOP の概念ではありません。すでに述べたように、通常は Parcelable によって行われます。これは、それを実装するモデル クラスの例です。

    public class NumberEntry implements Parcelable {

        private int key;
        private int timesOccured;
        private double appearRate;
        private double forecastValue;

        public NumberEntry() {

            key = 0;
            timesOccured = 0;
            appearRate = 0;
            forecastValue = 0;
        }
    public static final Parcelable.Creator<NumberEntry> CREATOR = new Parcelable.Creator<NumberEntry>() {
            public NumberEntry createFromParcel(Parcel in) {
                return new NumberEntry(in);
            }

            public NumberEntry[] newArray(int size) {
                return new NumberEntry[size];
            }
        };
/**
     * private constructor called by Parcelable interface.
     */
    private NumberEntry(Parcel in) {
        this.key = in.readInt();
        this.timesOccured = in.readInt();
        this.appearRate = in.readDouble();
        this.forecastValue = in.readDouble();
    }

    /**
     * Pointless method. Really.
     */
    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(this.key);
        dest.writeInt(this.timesOccured);
        dest.writeDouble(this.appearRate);
        dest.writeDouble(this.forecastValue);
    }

ただし、他の人が言うように Parcelable は設計自体が悪いため、パフォーマンスの問題が発生しない場合は、Serializable を実装することも別のオプションです。

于 2013-01-28T16:02:19.707 に答える