2016-11-07 9 views
0

Ich versuche, einen ArrayAdapter für ein benutzerdefiniertes JSONArray zu erstellen. Ich habe keine Tutorials gefunden, die ich verwenden könnte. Die App erhält Daten von WordPress. Es bekommt alle Beiträge, die Klasse wird gefüllt, aber ich weiß nicht, wie ich die Klasse in einer Liste anzeigen soll. Es wird als private Posts[] mPosts; deklariert. Also wird das Array von Posts in ein Array von Posts-Objekten geparst; Ich habe eine Liste in meiner activity_main deklariert, ich habe eine row.xml für die verschiedenen Objekte. Alles, was übrig bleibt, ist der Arrayadapter, was ich nicht zu tun scheint. Ich kann MainActivity und XML-Dateien hochladen, aber der Beitrag wird zu lang sein.ArrayAdapter für 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

verwenden [this] (https://gist.github.com/pskink/2dd4d17a93caf02ff696533e82f952b0) generischer Adapter – pskink

+0

Erstellen Sie einfach Adapter-Klasse und erweitern Sie mit ArrayAdapter <>. Und überschreiben Sie GetView() -Methode –

Antwort

0

ArrayAdapter kann kein JSONArray anpassen, wie JSONArray kein Java-Array ([] Notation) und stellt die java.util.List Schnittstelle nicht implementieren.

Sie können gerne a subclass of BaseAdapter that handles JSONArray erstellen.

+0

Ich habe diese Frage gesehen und ich habe versucht, es nachzuahmen, aber weil mein Array ist voll von benutzerdefinierten JSONObjects, konnte ich nicht die Parameter meiner Posts.class aufgrund nicht JSONObject.getString (), Muss ich Posts.getTitle(); und ich konnte keine Beiträge in die Adapterklasse verschieben. – lakimens

+0

@lakimens: Entweder konvertieren Sie Ihre 'JSONArray' in eine' ArrayList 'und verwenden Sie' ArrayAdapter', oder löschen Sie 'Posts' und verwenden Sie' JSONArray' direkt mit einem benutzerdefinierten 'BaseAdapter'. Oder, noch besser, verwenden Sie einen besseren JSON-Parser (z. B. Gson), so dass Sie kein "JSONArray" an erster Stelle haben. – CommonsWare

+0

Meine schlechte, ich habe kein JSONArray, ich habe ein Array von JSONObjects (Posts.class), es ist ein Java-Array (mPosts []), kein JSONArray, ich habe immer noch nicht den Adapter gemacht. – lakimens