java - Using Volley to get list from JSON generating list with last object only -
i trying fetch data in json form. list created on fetching having last object details against every list item. pls guide .
here code mainactivity fetch data.
package com.example.ankurdell.customlistview; import java.util.arraylist; import java.util.list; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import android.app.activity; import android.app.progressdialog; import android.graphics.color; import android.graphics.drawable.colordrawable; import android.os.bundle; import android.provider.settings; import android.util.log; import android.view.menu; import android.widget.listview; import com.android.volley.request; import com.android.volley.response; import com.android.volley.volleyerror; import com.android.volley.volleylog; import com.android.volley.toolbox.jsonarrayrequest; import com.android.volley.toolbox.jsonobjectrequest; public class mainactivity extends activity { // log tag private static final string tag = mainactivity.class.getsimplename(); // movies json url private static final string url = "https://api.dailymotion.com/videos"; private progressdialog pdialog; private arraylist<dailymovie> movielist = new arraylist<>(); private listview listview; private customlistadapter adapter; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); listview = (listview) findviewbyid(r.id.list); adapter = new customlistadapter(this, movielist); listview.setadapter(adapter); pdialog = new progressdialog(this); // showing progress dialog before making http request pdialog.setmessage("loading..."); pdialog.show(); // creating volley request obj jsonobjectrequest moviereq = new jsonobjectrequest(request.method.get, url, null, new response.listener<jsonobject>() { @override public void onresponse(jsonobject response) { log.d(tag, response.tostring()); hidepdialog(); // parsing json try { jsonarray jsonarray = response.getjsonarray("list"); dailymovie movie = new dailymovie(); (int = 0; < jsonarray.length(); a++) { jsonobject obj = jsonarray.getjsonobject(a); system.out.println("object value " + + " " + obj.tostring()); movie.setid(obj.getstring("id")); movie.settitle(obj.getstring("title")); movie.setowner(obj.getstring("owner")); movie.setchannel(obj.getstring("channel")); // adding movie movies array movielist.add(movie); } } catch (jsonexception e) { e.printstacktrace(); } // notifying list adapter data changes // renders list view updated data adapter.notifydatasetchanged(); } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { system.out.println("error"); volleylog.d(tag, "error: " + error.getmessage()); hidepdialog(); } }); // adding request request queue app.appcontroller.getinstance().addtorequestqueue(moviereq); } @override public void ondestroy() { super.ondestroy(); hidepdialog(); } private void hidepdialog() { if (pdialog != null) { pdialog.dismiss(); pdialog = null; } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); return true; } }
and here dailymovie class
package com.example.ankurdell.customlistview; /** * created ankur dell on 8/20/2017. */ public class dailymovie { private string id; private string title; private string channel; private string owner; public dailymovie() { } public dailymovie(string moviename, string movieid, string theme, string movieowner) { this.id = movieid; this.title = moviename; this.channel = theme; this.owner = movieowner; } public string getid() { return id; } public void setid(string id) { this.id = id; } public string gettitle() { return title; } public void settitle(string title) { this.title = title; } public string getchannel() { return channel; } public void setchannel(string channel) { this.channel = channel; } public string getowner() { return owner; } public void setowner(string owner) { this.owner = owner; } }
can 1 advice m doing wrong. referred https://www.androidhive.info/2014/09/android-json-parsing-using-volley/ coding.
dailymovie 1 element. right?
you have declare dailymovie variable in statement
for (int = 0; < jsonarray.length(); a++) { jsonobject obj = jsonarray.getjsonobject(a); system.out.println("object value " + + " " + obj.tostring()); dailymovie movie = new dailymovie(); movie.setid(obj.getstring("id")); movie.settitle(obj.getstring("title")); movie.setowner(obj.getstring("owner")); movie.setchannel(obj.getstring("channel")); // adding movie movies array movielist.add(movie); }
Comments
Post a Comment