他の投稿には要点がありません。もちろん、彼はリストをインスタンス メンバーとして保存し、ゲッターとセッターでアクセスできますが、どのオブジェクトがメンバーを所有しているのでしょうか?
提案されているように静的を使用できますが、より良い方法があります...アプリケーションクラスからぶら下げるだけです。を拡張するクラスを作成し、Application
そこにインスタンスを追加します。
public class MyApplication extends Application {
private List<Map<String, String>> items = new ArrayList<Map<String, String>>();
public List<Map<String, String>> getItems() {
return items;
}
public void setItems(List<Map<String, String>> items) {
this.items = items;
}
}
マニフェストにアプリケーション クラスを構成し、
<application
android:name=".MyApplication"
...
今、あなたの活動やサービスで、これを行うだけです。
List<Map<String, String>> items = ((MyApplication)getApplication()).getItems();
あなたの断片から、これを行い、
List<Map<String, String>> items = ((MyApplication)getActivity().getApplication()).getItems();
良いことに、このオブジェクトはアプリケーションと同じライフサイクルを持っています。アプリケーションの任意の部分がアクティブである間存在し、アプリケーションとともに GC されます。