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