質問: new ItemListAdapter(getActivity()); setListAdapter(adapter); } @Override public void onStart() { super.onStart(); this.getView().findViewById(R.id.one).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //ここでボタンを押すと下記の内容がリストに追加されていきます。 adapter.add("icon","google","https://www.google.co.jp/"); } }); } ``` 以下は、JSONデータの構造です。 ``` [ {"title":"タイトル01","content":"http:XXX0","image":"http:YYY0"} , {"title":"タイトル02","content":"http:XXX1","image":"http:YYY1"} , {"title":"タイトル03","content":"http:XXX3","image":"http:YYY3"} , {"title":"タイトル04","content":"http:XXX4","image":"http:YYY4"} , {"title":"タイトル05","content":"http:XXX5","image":"http:YYY5"} , {"title":"タイトル06","content":"http:XXX6","image":"http:YYY6"} , {"title":"タイトル07","content":"http:XXX7","image":"http:YYY7"} ] ``` 試したことは、 1 上記addをJSON解析のfor文に入れ、解析動作とともに追加する。 2 SharedPreferencesでJSONデータを記憶→ListFragmentで読み出し。 3 fragment.setArguments(bundle);等を使用したFragmentに値を渡す方法。 その他、色々試しているのですが、うまく行っておりません。 アドバイスを頂ければ幸いです。
回答: JsonArrayをどこから`ListFragment`に渡すのかわからないのですがActivityから`ListFragment`の載っているActivityへ渡すならば、`Bundle`で自作したオブジェクトを渡す場合はそのオブジェクトに`Parcelable`を実装すればできると思います。 また、`Application`クラスを実装したクラスを作成し、データを一時的にそのクラスに保存することもできると思います。 親Activityからそこに実装されたの`ListFragment`へのデータ渡しであれば、`ListFragment`に作成したメソッドを親Activityからデータ取得終了後に呼び出して、その引数でJsonArrayを渡す方法があります。 また、前者と同様に`Application`クラスを用いることもできると思います。 また、`SharedPreference`は永続的に保存したいデータを保持する目的に使うべきなのでこのような用途に使うべきではありません。 しかし、ActivityからActivityへそのような大きなデータを渡すことはActivity同士の結合が強くなってしまうのであまりオススメできないように思います。 できるのであれば、`ListFragment`内でデータを取得するべきだと思います。