JSON to ListView in Android with Gson -
i'm trying put json result in listview in android app.
this json:
[ { "result": "8:30,21", "meeting": "antwerp olympics", "event": "3000m", "date": "30/05/2013" }, { "result": "008,32", "meeting": "antwerp olympics", "event": "long jump", "date": "30/05/2013" }, { "result": "6,35", "meeting": "antwerp olympics", "event": "high jump", "date": "30/05/2013" }, { "result": "5,00", "meeting": "antwerp olympics", "event": "discus throw", "date": "30/05/2013" } ]
this android code
gson gson = new gson(); result[] res = gson.fromjson(results, result[].class); listview lv1 = (listview) getview().findviewbyid(r.id.samplelistview); string[] values = new string[] { }; //values arrayadapter<string> files = new arrayadapter<string>(getactivity(),android.r.layout.list_content, values); lv1.setadapter(files);
getting json result gson works, did simple json. don't know how implement json result in listview. how should populate string[] values?
thanks in advance
create class named evententity or choise
import com.google.gson.annotations.serializedname; public class evententity{ @serializedname("result") public int result; @serializedname("meeting") public string meeting; @serializedname("event") public string event; @serializedname("date") public string date; public evententity() {} }
and change listview databind codes this
listview lv1 = (listview) getview().findviewbyid(r.id.samplelistview); gson gson = new gson(); list<evententity> events = (list<evententity>) gson.fromjson(results, new typetoken<evententity>>() {}.gettype()); arrayadapter<evententity> files = new arrayadapter<evententity>(..........); lv1.setadapter(files);
edit, should create custom adapter class , row layout
public class mycustomadapter extends arrayadapter<evententity> { private final list<evententity> list; private final activity context; public mycustomadapter (activity context, list<evententity> list) { super(context, r.layout.rowlayout, list); this.context = context; this.list = list; } static class viewholder { protected textview eventtitle; protected textview eventdate; } @override public view getview(int position, view convertview, viewgroup parent) { view view = null; layoutinflater inflator = context.getlayoutinflater(); view = inflator.inflate(r.layout.rowlayout, null); final viewholder viewholder = new viewholder(); viewholder.eventtitle = (textview) view.findviewbyid(r.id.label); viewholder.eventdate = (textview) view.findviewbyid(r.id.date); view.settag(viewholder); viewholder holder = (viewholder) view.gettag(); holder.eventtitle.settext(list.get(position).event); holder.eventdate.settext(list.get(position).date); return view; }
Comments
Post a Comment