サービスからアクティビティに渡すためにタスクを分割可能にしてバンドルに入れようとしていますが、カスタム タイプの ArrayList を操作するのに少し問題があります。
仕事:
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel prc, int arg1) {
// TODO Auto-generated method stub
prc.writeInt(id);
prc.writeString(timeStamp_string);
prc.writeString(timeToComplete_string);
prc.writeTypedArray(resources.toArray(), PARCELABLE_WRITE_RETURN_VALUE);
}
リソース:
@Override
public int describeContents() {
// TODO Auto-generated method stub
return 0;
}
@Override
public void writeToParcel(Parcel prc, int flags) {
// TODO Auto-generated method stub
prc.writeInt(id);
prc.writeString(timeStamp_string);
prc.writeString(resourceType);
prc.writeString(dataType);
prc.writeString(value);
prc.writeInt(taskId);
}
タスク内の prc.writeTypedArray 関数でエラーが発生します。
Bound mismatch: The generic method writeTypedArray(T[], int) of type Parcel is not applicable for the arguments (Object[], int). The inferred type Object is not a valid substitute for the bounded parameter <T extends Parcelable>
Resources が Parcelable を実装している場合、どこに問題があるのかわかりません。
編集:この部分を修正したと思います。代わりに .writeParcelableList() を使用しました。誰かがこれが機能することを確認できますか? 以下の質問はまだ有効です。
また、タスクがアクティビティによってインテントから読み取られる場合、他のデータ メンバーを埋めるために何らかの計算を行う必要があります。計算を行うために実装できる関数は何ですか? readFromParcel(...) または Parcelable をパラメーターとして受け取るコンストラクターですか?
ありがとう