2016-11-07 62 views
0

我正在嘗試爲自定義JSONArray創建一個ArrayAdapter。 我沒有找到任何我可以使用的教程。 該應用程序正在從WordPress獲取數據。它正在獲得所有帖子,課程得到充實,但我不知道如何將該課程顯示在列表中。 它被宣佈爲private Posts[] mPosts;所以post的數組get被解析成Posts對象的數組; 我有一個列表聲明在我的activity_main,我有一個row.xml爲不同的對象。剩下的就是arrayadapter,我似乎無法做到這一點。 我可以發佈MainActivity和XML文件,但帖子太長。ArrayAdapter for JSONArray?

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

只需創建Adapter類並使用ArrayAdapter <>進行擴展。並覆蓋GetView()方法 –

回答

0

ArrayAdapter不能適應一個JSONArray,如JSONArray不是Java陣列([]符號)和不實現java.util.List接口。

歡迎您創建a subclass of BaseAdapter that handles JSONArray

+0

我看到了這個問題,我試圖模仿它,但因爲我的數組充滿自定義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)數組,它是一個java數組(mPosts []),而不是JSONArray,但我仍然沒有做出適配器。 – lakimens