i need use data add arraylist fieldsimages outside method add data it, when request data of fieldsimages inside 'done' method, works correctly because data there, outside method, fieldsimages has no data, it's empty.
how can make data added fieldsimages inside method done stay in class ?
please note 'done' method nested inside 'done' method. methods parse.com (backend using project)
public class choosefielddialogfragment extends dialogfragment { list<string> fieldsnamesinfo = new arraylist<string>(); list<string> fieldstypeinfo = new arraylist<string>(); list<string> fieldssizeinfo = new arraylist<string>(); //this 1 list need keep data added on method done list<integer> fieldsimages = new arraylist<integer>(); listview choosefieldlist; string mtitle; long mtime; string mvenueid; @override public void oncreate(@nullable bundle savedinstancestate) { super.oncreate(savedinstancestate); bundle bundle = this.getarguments(); mtitle = bundle.getstring("venuename"); mtime = bundle.getlong("reservtime"); mvenueid = bundle.getstring("venueid"); setshowsdialog(false); } @nullable @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) { view dialogview = inflater.inflate(r.layout.choose_field_list, container, false); choosefieldlist = (listview) dialogview.findviewbyid(r.id.choosefragmentlist); parsequery<parseobject> query = parsequery.getquery("field"); parseobject fieldobj = parseobject.createwithoutdata("venue", mvenueid); query.whereequalto("venueid", fieldobj); query.setlimit(1000); query.findinbackground(new findcallback<parseobject>() { public void done(final list<parseobject> fieldlist, parseexception e) { if (e == null) { (int = 0; < fieldlist.size(); i++){ fieldsnamesinfo.add(fieldlist.get(i).getstring("name")); fieldstypeinfo.add(fieldlist.get(i).getstring("type")); fieldssizeinfo.add(fieldlist.get(i).getstring("size")); parsequery<parseobject> query = parsequery.getquery("reservation"); final parseobject fieldobj = parseobject.createwithoutdata("field", fieldlist.get(i).getobjectid()); query.whereequalto("fieldid", fieldobj); query.whereequalto("date", mtime); query.findinbackground(new findcallback<parseobject>() { public void done(final list<parseobject> reservforfieldlist, parseexception e) { if (e == null) { log.d("funciono", integer.tostring(reservforfieldlist.size())); if (reservforfieldlist.isempty()){ log.d("argegandoverde","aaaaa"); //here add data list fieldsimages.add(r.drawable.onfield); } else{ log.d("argegandogris","uuuuu"); //here add data list fieldsimages.add(r.drawable.offfield); } } else { log.d("venue", "error: " + e.getmessage()); } //here array list fieldsimages correctly populated data } }); //here array list loses data , gets empty log.d("qqqqqq", integer.tostring(fieldsimages.size())); } log.d("qqqqqq", integer.tostring(fieldsimages.size())); //here need use data added array list fieldsimages @ point empty. choosefieldcustomadapter customadapter = new choosefieldcustomadapter(getcontext(), fieldsnamesinfo, fieldsimages, fieldstypeinfo); choosefieldlist.setadapter(customadapter); } else { log.d("venue", "error: " + e.getmessage()); } } }); final alertdialog alertdialog = new alertdialog.builder(getactivity()).create(); alertdialog.settitle(mtitle); alertdialog.setview(dialogview); alertdialog.show(); return dialogview; } }
thanks reading.
i'm not sure make sense focus, want keep data of fieldsimages list? if so, declare fieldsimage list static , put data. after that, can use anywhere. luck!
Comments
Post a Comment