i've created asynctask in activity , want return variable "realimage" asynctask cant seem access it...
public class photoutils { public static photo getimage(string id) {     unsplash.getphoto(id, new unsplash.onphotoloadedlistener()     {         @override         public void oncomplete(photo photo)         {             photo realimage=photo;         }          @override         public void onerror(string error)         {          }     });      return realimage; //this line shows error cannot resolve symbol                          realimage } } this async task in other activity
public class imagetask extends asynctask<photo,void,photo> {      @override     protected photo doinbackground(photo... photos)     {             intent intent=getintent();              bundle bd=intent.getextras();              string getid = (string) bd.get("id");              photo finalphoto=photoutils.getimage(getid);              return finalphoto;     }      @override     protected void onpostexecute(photo finalphoto) {         tv1.settext(finalphoto.getid());         super.onpostexecute(finalphoto);     } } 
first, looks don't need asynctask. look @ example code
secondly, can't return that.
onphotoloadedlistener asynchronous callback.
just use image normal within oncomplete.
if needed pass image calling method, extract callback parameter.
// void  public static void getimage(string id, unsplash.onphotoloadedlistener listener) {     unsplash.getphoto(id, listener); }); call as
photoutils.getimage(id, new unsplash.onphotoloadedlistener() {     // use image in here  }); which, if closely, did replace normal usage of  unsplash.getphoto photoutils.getimage, may want want, accomplish similar approach singleton pattern around unsplash instance variable. way, you're not rewriting of unsplash api calls 
Comments
Post a Comment