android - Updating ListView Adapter from AsyncTask -
what have asynctask, started listview reached bottom item on screen, , in asynctask adds new items listview. here code:
@override protected void onpostexecute(final list records) { super.onpostexecute(records); ((activityhome)context).runonuithread(new runnable() { public void run() { (itemdailyrecord p : records) { adapter.add(p); } adapter.notifydatasetchanged(); } }); }
@override protected list doinbackground(void... voids) { dbadapterdailyrecord db = new dbadapterdailyrecord(context); list list = db.getrecordsfromto(offset, count); return list; }
here method listview adapter:
@override public view getview(int position, view convertview, viewgroup parent) { if(position == getcount() - 1 && hasmoreitems){ historyloadertask t = new historyloadertask(position + 1, pagesize, getcontext(),this); t.execute(); footer.settext("loading . . ."); }
and error message is(if scroll listview fast :)
caused by: android.view.viewrootimpl$calledfromwrongthreadexception: original thread created view hierarchy can touch views.
any ideas how solve issue?
the onpostexecute()
method executed on ui thread, should updating ui directly in method; no need spawn new runnable
object.
Comments
Post a Comment