parse.com - Android How to implement AsyncTask in my custom Listview -


when ran code log skipped 303 frames! application may doing work on main thread. how implement asynctask in code below, , how show progressbar, while fetching data 1 of parse.com's database. appreciate help.


here activity's code:

@override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_doctors_name_list);      bundle extras = getintent().getextras();     final string key = extras.getstring("key");     listview lvdoctorsname = (listview) findviewbyid(r.id.lvdoctorsname);      parsequeryadapter.queryfactory<parseobject> factory = new parsequeryadapter.queryfactory<parseobject>() {         public parsequery create() {             parsequery query = new parsequery("doctors");             query.wherecontains("name", key);             return query;         }     };     customlayout urgentadapter = new customlayout(this, factory);     lvdoctorsname.setadapter(urgentadapter);      textview empty = (textview) findviewbyid(r.id.empty_list_item);     lvdoctorsname.setemptyview(empty);      itemclicklistener(); }  public void itemclicklistener() {     listview lvdoctorsname = (listview) findviewbyid(r.id.lvdoctorsname);     lvdoctorsname.setonitemclicklistener(new adapterview.onitemclicklistener() {         @override         public void onitemclick(adapterview<?> parent, view view, int position, long id) {              parseobject item = (parseobject) parent.getadapter().getitem(position);             string objectid = item.getobjectid().tostring();             intent = new intent();             i.setclass(getapplicationcontext(), doctorpage.class);             //i.putextra("new_variable_name",value);             i.putextra("objectid", objectid);             startactivity(i);         }     });  } 

and here custom layout:

public class customlayout extends parsequeryadapter<parseobject> {   public customlayout(context context, queryfactory<parseobject> queryfactory) {     super(context, queryfactory); }   @override public view getitemview(parseobject object, view v, viewgroup parent) {     if (v == null) {         v = view.inflate(getcontext(), r.layout.row, null);     }     super.getitemview(object, v, parent);      textview titletextview = (textview) v.findviewbyid(r.id.text1);     titletextview.settext(object.getstring("name"));      textview titletextview2 = (textview) v.findviewbyid(r.id.text2);     titletextview2.settext(object.getstring("city"));      return v; } 

one problem see calling findviewbyid() every time getitemview() called; findviewbyid() expensive operation. should implement viewholder pattern avoid this.


Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -