アレイリストの束
答えて
YourObject
にParcelable
インターフェイスを実装してから、bundle.putParcelableArraylist(theParcelableArraylist)
を使用してください。
編集:whoopsが質問を誤読しました。なぜあなたはarraylistの配列を保存したいですか?オリエンテーションの変更を維持するために、代わりにonRetainNonConfigurationInstance
を使用したいと思うかもしれませんか?
編集2:[OK]をクリックします。新しいWrapper
クラスを作成し、Parcelable
を実装します(myObjects
も分解可能でなければならないことに注意してください)。
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(mElements.length);
for(ArrayList<MyObject> element : mElements) {
dest.writeParcelableArray(element.toArray(new MyObject[0]), flags);
}
}
そしてコンストラクタ:writeToParcel
方法は次のようなものになります、私はちょうどputSerializable(myarraylistofstuff)
を使用して、私はget()
を使用してキャストで取り戻す
private Wrapper(Parcel in) {
int length = in.readInt();
//Declare list
for (int i = 0; i < length; i++) {
MyObject[] read = in.readParcelableArray(Wrapper.class.getClassLoader());
//add to list
}
}
あなたのオブジェクトがSerializable
インタフェースでマークされたシリアル化をサポートしている場合、あなたはbundle.putSerializable
を使用することができるはずです。
ArrayList
Serializable
をサポートしていますが、平野についてはわかりません。array
バンドルを使用して
ない可能バンドルは唯一のプリミティブの配列リストを可能にするよう、...
はparcleableまたはアプリケーションレベルのデータまたは静的変数(悪い習慣)を使用してみてください。
を、あなただけの未チェックの警告を沈黙させる必要があります。私は間違っている場合は私に正しいと思うあなたはSerializable
としてそれを偽造するオブジェクトを渡すことができます、あなたはオブジェクト参照を渡す同じプロセスにとどまる限り。このアプローチは、明らかに、別のアプリケーションにデータを渡すときには機能しません。
EDIT:現在アンドロイドのみ断片間の参照を渡し、IはActivity
に任意のオブジェクトを渡すことを試みてきた、それが働いたが、オブジェクトが異なっていた、Fragment
の引数を使用して、同じ試験ではなく、同じObject
を示しました。あなたはそれが代わりにParcel
- 1. アレイリストのジェネリックスエラー
- 2. あるアレイリストを別のアレイリストにコピーする最速の方法
- 3. アレイリストとブール値の比較
- 4. アレイリストの内容を編集する
- 5. アレイリストの内容を出力する
- 6. アレイリストを取得する方法
- 7. 約束は、約束の前リターンは、
- 8. Android、イメージボタンの束
- 9. 返信済み約束約束
- 10. 約束
- 11. アレイリストからデータの文字列を削除する
- 12. 拘束タイプのarg
- 13. 拘束ウィンドウwpf
- 14. $ q.all約束は
- 15. Bluebird約束ループ
- 16. カップリングと結束
- 17. 約束の約束に加入する方法
- 18. アレイリストを使用する方が効率的ですか?
- 19. ローカルストレージからアレイリストを1つずつ取り出す
- 20. アレイリストにイメージを追加して、そのアレイリストをAndroidのビューに追加するにはどうすればよいですか?
- 21. foreachの後の約束
- 22. `.then`なしの約束
- 23. jQueryの約束とバックボーン
- 24. 約束ベースのプロパティEmber
- 25. マングースの約束を返す
- 26. AngularJS約束の配列
- 27. スキームのlet束縛文
- 28. 約束の内部作業
- 29. ランダム拘束グラフの生成
- 30. ブルーバードの約束とドメイン
を使用することをお勧めしますオブジェクトの多くを持っている場合
とにかくそれをデシリアライズし、私の
Object
細かいシリアライズし、それは向きの変更のため、ほとんどですが、私は活動のライフサイクルに対応するために、同様にそれを必要とします。 – Greg私は、パーセルブルを実装し、それほどエレガントではない方法でラッパークラスを作成することができると思います。私は私の答えを編集します。 – dmon
これはうまくいきましたか? –