2017-12-07 1 views
0

現在、リモートサーバーの情報を取得するためのアプリケーションをビルドしています。受信したデータは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を保持します。

私は文字列のリストを持っていません、それはオブジェクトのリストです。

よろしくお願いいたします。

+0

なぜあなたはそれを「パーセルブル」にするのをとても躊躇していますか?これを行う正しい方法であり、JSONの抽出を妨げません。 –

答えて

関連する問題