listview refresh aynctask in android -
i unable refresh listview. know there lots of available this. unable listview refreshed.
lemme edit code little bit showing asynctask
there 2 activities. first activity having list view see being shared , second activity has edit text box (to input inorder share) , button. on clicking button, returns me string json response , need add in previous activity.
now problem is, when refresh first page hitting server gets response not want. should not go server. should add in list view adapter.
i have commented code in postexecute(). have tried everyway not reflecting.
public class shareasynctask extends asynctask<string, void, arraylist<eventsstreambean>> { public progressdialog pd = new progressdialog(eventstreamactivity.this); string success_share_val; @override protected arraylist<eventsstreambean> doinbackground( string... result) { // todo auto-generated method stub jsonobject jsonobj = new jsonobject(result[0].tostring()); success_share_val = jsonobj.getstring(constants.success); //checks success value if(success_share_val.equalsignorecase("1")) { jsonarray events_stream_share_array = jsonobj.getjsonarray("streamarray"); if(events_stream_share_array.length() > 0) { for(int i=0; i<events_stream_share_array.length(); i++) { eventsstreambean events_stream_bean = new eventsstreambean(); jsonobject events_stream_object = events_stream_share_array.getjsonobject(i); events_stream_bean.setstreamid(events_stream_object.getstring(constants.stream_id)); events_stream_bean.setstreamtype(events_stream_object.getstring(constants.stream_type)); events_stream_bean.setuserid(events_stream_object.getstring(constants.user_id)); events_stream_bean.setusername(events_stream_object.getstring(constants.user_name)); events_stream_bean.setusertype(events_stream_object.getstring(constants.user_type)); events_stream_bean.setuseravatar(events_stream_object.getstring(constants.user_avatar)); arraylist_events_stream.add(events_stream_bean); } }else { log.i("test", "no events streams available"); } } }catch(exception e) {} return arraylist_events_stream; } @override protected void onpreexecute() { // todo auto-generated method stub super.onpreexecute(); this.pd.setmessage("loading...."); pd.setcanceledontouchoutside(false); pd.setcancelable(false); this.pd.show(); } @override protected void onpostexecute(final arraylist<eventsstreambean> result) { // todo auto-generated method stub super.onpostexecute(result); if(this.pd.isshowing()) { this.pd.dismiss(); } toast.maketext(eventstreamactivity.this, "post shared successfully", toast.length_short).show(); new eventsstreamasynctask().execute(temp_val); /*runonuithread(new runnable() { public void run() { //eventstream_customadapter adapter = (eventstream_customadapter) list_view.getadapter(); //adapter.cleardata(); adapter.updatedata(result); //adapter = new eventstream_customadapter(eventstreamactivity.this, arraylist_events_stream); //list_view.setadapter(adapter); //adapter.notifydatasetchanged(); } });*/ } }
- you should call setadapter() once in entire code.
then add method in adapter adds more data when want add more data or sets adapter item.
public void addmoredata(list<string> newitems) { this.list.addall(newitems); } public void setlist(list<string> newlist) { this.list = newlist; }
call notifydatasetchanged() after set new list or add more data.
Comments
Post a Comment