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
Post a Comment