現在、リモートサーバーの情報を取得するためのアプリケーションをビルドしています。受信したデータはJSONであり、私は以下のクラス使用したデータのリストを作成しています:JSONを変換するために使用されているsavedInstanceStateにカスタムオブジェクトのリストを保存
public final class RedditTopic {
private static final String TAG = RedditTopic.class.getSimpleName();
private String author;
private String thumbnail;
private String title;
private String num_comments;
private long created_utc;
private String data;
private String name;
public RedditTopic(){};
public String getData() {
return data;
}
public String getAuthor() {
return author;
}
public String getThumbnail(){
return thumbnail;
}
public String getTitle(){
return title;
}
public String getComments(){
return num_comments + " comments";
}
public long getCreated_utc(){
return created_utc;
}
public String getRedditName(){
return name;
}
}
これらのクラスの両方:
public class RedditData {
private RedditTopic data;
public RedditTopic getData() {
return data;
}
}
とRedditTopicクラスは以下のように定義されObject形式のデータに変換します。
私はJSONの抽出に影響を与えないように、それらをParceableにするために実際に変更したくありません。
私が追加しました:私は私のクラスのRedditDataにParceableを実装する必要があるとRedditDataがRedditTopicの一覧を返したため、私は同様RedditTopicクラスで、おそらく想定しているため
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
Log.d(TAG, ">>>>>>>>>>>>>>>>>>>>>>>> SAVE");
savedInstanceState.putParcelableArrayList("RedditList", myListOfData);
super.onSaveInstanceState(savedInstanceState);
}
@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
Log.d(TAG, ">>>>>>>>>>>>>>>>>>>>>>>> RESTORE");
List<RedditData> myListOfData = savedInstanceState.getParcelableArrayList("RedditList");
}
アンドロイドは文句を言います。
良い方法がありますか?私はParceableオプションを必要とせずにListを保持します。
私は文字列のリストを持っていません、それはオブジェクトのリストです。
よろしくお願いいたします。
なぜあなたはそれを「パーセルブル」にするのをとても躊躇していますか?これを行う正しい方法であり、JSONの抽出を妨げません。 –