i learning custom listview using volley provided google. http://www.androidhive.info/2014/06/android-facebook-like-custom-listview-feed-using-volley/
i followed same code tutorial got error.

one thing not followed tutorial using compile 'com.mcxiaoke.volley:library:1.0.17' import volley lib since it's same.
here code:
package ahfoo_project.ui.discoverui; import android.annotation.suppresslint; import android.app.activity; import android.os.bundle; import android.support.v7.widget.toolbar; import android.view.view; import android.widget.listview; import android.widget.searchview; import com.android.volley.cache; 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.jsonobjectrequest; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import java.io.unsupportedencodingexception; import java.util.arraylist; import java.util.list; import butterknife.butterknife; import butterknife.injectview; import butterknife.optional; public class searchactivity extends activity { private static final string tag = searchactivity.class.getsimplename(); private feedlistadapter listadapter; private list<feeditem> feeditems; private string url_feed = "http://api.androidhive.info/feed/feed.json"; @optional @injectview(r.id.searchtextview) searchview searchtextview; @optional @injectview(r.id.searchtoolbar) toolbar searchtoolbar; @optional @injectview(r.id.search_listview) listview searchlistview; @suppresslint("newapi") @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_search); butterknife.inject(this); initializetoolbar(); /***************************************************************************/ feeditems = new arraylist<feeditem>(); listadapter = new feedlistadapter(this, feeditems); searchlistview.setadapter(listadapter); // first check cached request cache cache = appcontroller.getinstance().getrequestqueue().getcache(); cache.entry entry = cache.get(url_feed); // fetch data cache if (entry != null) try { string data = new string(entry.data, "utf-8"); try { parsejsonfeed(new jsonobject(data)); } catch (jsonexception e) { e.printstacktrace(); } } catch (unsupportedencodingexception e) { e.printstacktrace(); } else { // making fresh volley request , getting json jsonobjectrequest jsonreq = new jsonobjectrequest(request.method.get, url_feed, null, new response.listener<jsonobject>() { @override public void onresponse(jsonobject response) { volleylog.d(tag, "response: " + response.tostring()); if (response != null) { parsejsonfeed(response); } } }, new response.errorlistener() { @override public void onerrorresponse(volleyerror error) { volleylog.d(tag, "error: " + error.getmessage()); } }); // adding request volley request queue appcontroller.getinstance().addtorequestqueue(jsonreq); } } /** * parsing json reponse , passing data feed view list adapter * */ private void parsejsonfeed(jsonobject response) { try { jsonarray feedarray = response.getjsonarray("feed"); (int = 0; < feedarray.length(); i++) { jsonobject feedobj = (jsonobject) feedarray.get(i); feeditem item = new feeditem(); item.setid(feedobj.getint("id")); item.setname(feedobj.getstring("name")); // image might null string image = feedobj.isnull("image") ? null : feedobj .getstring("image"); item.setimge(image); item.setstatus(feedobj.getstring("status")); item.setprofilepic(feedobj.getstring("profilepic")); item.settimestamp(feedobj.getstring("timestamp")); // url might null string feedurl = feedobj.isnull("url") ? null : feedobj .getstring("url"); item.seturl(feedurl); feeditems.add(item); } // notify data changes list adapater listadapter.notifydatasetchanged(); } catch (jsonexception e) { e.printstacktrace(); } } private void initializetoolbar() { searchtoolbar.setnavigationicon(r.drawable.back_arrow); searchtoolbar.setnavigationonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { finish(); } }); } }
Comments
Post a Comment