2016-11-07 2 views
0

カスタムJSONArrayのArrayAdapterを作成しようとしています。 使用できるチュートリアルが見つかりませんでした。 アプリはWordPressからデータを取得しています。それはすべての投稿を取得している、クラスがいっぱいになるが、私はどのようにリストにクラスを表示するか分からない。 それはprivate Posts[] mPosts;と宣言されています。したがって、投稿の配列はPostsオブジェクトの配列に解析されます。 私はactivity_mainで宣言されたリストを持っています、私は異なるオブジェクトのためにrow.xmlを持っています。残っているのは配列アダプターだけですが、私はそうすることはできません。 MainActivityとXMLファイルを投稿できますが、投稿が長すぎます。JSONArrayのArrayAdapter?

JSONArrayは、Java配列([]表記)はなく、java.util.Listインタフェースを実装していないとしてPosts.class

public class Posts { 

private String mId; 
private String mDate; 
private String mTitle; 
private String mContent; 
private String mCategories; 


public String getId() { 
    return mId; 
} 

public void setId(String id) { 
    mId = id; 
} 

public String getDate() { 
    return mDate; 
} 

public void setDate(String date) { 
    mDate = date; 
} 

public String getTitle() { 
    return mTitle; 
} 

public void setTitle(String title) { 
    mTitle = title; 
} 

public String getContent() { 
    return mContent; 
} 

public void setContent(String content) { 
    mContent = content; 
} 

public String getCategories() { 
    return mCategories; 
} 

public void setCategories(String categories) { 
    mCategories = categories; 
} 
+0

[this](https://gist.github.com/pskink/2dd4d17a93caf02ff696533e82f952b0)汎用アダプタ – pskink

+0

アダプタクラスを作成し、ArrayAdapter <>で拡張するだけです。そして、GetView()メソッドをオーバーライドします。 –

答えて

0

ArrayAdapterは、JSONArrayを適応させることができません。

a subclass of BaseAdapter that handles JSONArrayを作成できます。

+0

私はその質問を見ましたが、それを模倣しようとしましたが、ArrayにカスタムJSONObjectsがたくさんあるため、Posts.classのパラメータをJSONObject.getString )、私はPosts.getTitle()をする必要があります。私はポストをAdapterクラスに移動できませんでした。 – lakimens

+0

@lakimens: 'JSONArray'を' ArrayList 'に変換し、' ArrayAdapter'を使うか、 'Posts'を削除し、' JSONArray'をカスタム 'BaseAdapter'で直接使用してください。あるいは、より良いJSONパーサ(例:Gson)を使用することをお勧めします。最初はJSONArrayがありません。 – CommonsWare

+0

私はJSONArrayを持っていない、私はJSONObjects(Posts.class)の配列を持っています、それはJSONArrayではなく、私はまだアダプタを作っていない、Java配列(mPosts [])です。 – lakimens