c# - Bring next set of Images in RestSharp -
i trying create endless table in xamarin instagram client. when scroll bottom of screen loads same 2nd page of images back. loads first page loads 2nd page normally, when seek load 3rd page loads 2nd page again. how prepare this? how attempting load it:
account instagram = enumerable.first (); var instagramaccesstoken = instagram.properties ["access_token"].tostring (); var request = new restrequest { rootelement = "data", resource = "/users/self/feed" }; request.addparameter ("access_token", instagramaccesstoken); var client = new restclient ("https://api.instagram.com/v1"); client.executeasync (request, response => { var rootobject = jsonconvert.deserializeobject<rootobject> (response.content); string nexturl = rootobject.pagination.next_url; //// create next client var requestback = new restrequest (); var clientback = new restclient (nexturl); // next response clientback.executeasync (requestback, responseback => { var rootobjectback = jsonconvert.deserializeobject<rootobject> (responseback.content); table.invokeonmainthread (() => { // create list contains newly attained json list<datum> instagramdata = rootobjectback.data; // create dummy list other values list<datum> sloppy = null; ((tablesource<datum>)table.source).instadata.addrange (instagramdata); table.reloaddata (); }); }); });
this observe user @ bottom of tableview
public override uitableviewcell getcell (uitableview tableview, monotouch.foundation.nsindexpath indexpath) { networkcheck netcheck = new networkcheck (); netcheck.runcheck (); bool log = netcheck.anyloggedin (); if (tableview.contentsize.height - uiscreen.mainscreen.bounds.height <= tableview.contentoffset.y) { // lastly row in lastly section console.writeline ("~~~bottom~~~"); fldtrequest fldt = new fldtrequest (); fldt.getpastinstagramfeed (tableview); } var cell = tableview.dequeuereusablecell(instagramcell.key) instagramcell; if (cell == null) { cell = new instagramcell(); var views = nsbundle.mainbundle.loadnib("instagramcell", cell, null); cell = runtime.getnsobject(views.valueat(0)) instagramcell; } datum h = instadata [indexpath.row]; cell.binddata(h); homecoming cell; }
put callback in seperate recursive function keeps calling long there nexturl. don't know instagram api should work.
run in viewdidload or (not every time reach bottom once)
nexturl = null; business relationship instagram = enumerable.first (); var instagramaccesstoken = instagram.properties ["access_token"].tostring (); var request = new restrequest { rootelement = "data", resource = "/users/self/feed" }; request.addparameter ("access_token", instagramaccesstoken); var client = new restclient ("https://api.instagram.com/v1"); client.executeasync (request, resp => { pageretrievedcallback(resp ); });
callback function
store nexturl class value
string nexturl = null; public void pageretrievedcallback(restresponse response) { var rootobject = jsonconvert.deserializeobject<rootobject> (response.content); nexturl = rootobject.pagination.next_url; table.invokeonmainthread (() => { // create list contains newly attained json list<datum> instagramdata = rootobject.data; // create dummy list other values list<datum> sloppy = null; ((tablesource<datum>)table.source).instadata.addrange (instagramdata); table.reloaddata (); }); }
run when observe bottom load next page:
if ( ! string.isnullorempty (nexturl) ) { var requestback = new restrequest (); var clientback = new restclient (nexturl); clientback.executeasync (requestback, resp => { pageretrievedcallback(resp ); }); }
c# ios monotouch xamarin restsharp
No comments:
Post a Comment