android - listview is not updating with notifydataSetChanged -


my listview not updating data retrieved after first 20 items.

i checked multiple times if data not passed json, is, listview not updating added data.

here part of code:

@override public void ongetdata(jsonobject obj) {     serie[] serieslist;     if (obj != null) {         if (pagenumber == 1) {             series = serie.serielistfromjson(this, jsonhandling                     .getinstance().getjsonarrayseriefromurltmdb(obj));             serieslist = series.toarray(new serie[series.size()]);             adapter = new searchcustomadapter(this, serieslist);             lvsearch = (listview) findviewbyid(r.id.lvsearch);             lvsearch.setadapter(adapter);             lvsearch.setonscrolllistener(this);         } else {              try {                 toast.maketext(this, "obj ?"+obj.tostring(1), toast.length_long).show();             } catch (jsonexception e) {                 // todo auto-generated catch block                 e.printstacktrace();             }             //adapter.clear(); getting unsupportedmethod exeption             series.addall(serie.serielistfromjson(this, jsonhandling                     .getinstance().getjsonarrayseriefromurltmdb(obj)));             serieslist = series.toarray(new serie[series.size()]);             adapter.notifydatasetchanged();         }     }     if (obj == null) {         toast.maketext(this, "obj null", toast.length_long).show();         serie serie = new serie("not found", "");         serieslist = new serie[series.size()];         serieslist[0] = serie;         adapter = new searchcustomadapter(this, serieslist);         lvsearch = (listview) findviewbyid(r.id.lvsearch);         lvsearch.setadapter(adapter);     } }  @override public void onscroll(abslistview view, int firstvisibleitem,         int visibleitemcount, int totalitemcount) {         this.currentfirstvisibleitem = firstvisibleitem;         this.currentvisibleitemcount = visibleitemcount;         this.currenttotalitemcount=totalitemcount;   }  @override public void onscrollstatechanged(abslistview view, int scrollstate) {     this.currentscrollstate = scrollstate;      if(( currentfirstvisibleitem+currentvisibleitemcount) == currenttotalitemcount){         this.isscrollcompleted();         adapter.notifydatasetchanged();     }   }  private void isscrollcompleted() {     if (this.currentvisibleitemcount > 0 && this.currentscrollstate == scroll_state_idle) {         pagenumber++;         jsonhandling.getinstance().getjsonfromurl(tvtitel.gettext().tostring(), tvyear.gettext().tostring(), iof, pagenumber);         adapter.notifydatasetchanged();     } 

}

so please tell me did wrong or missed?

edit: added code adjust ments in onscrollstatechange. still not sure why should there , not on data though.

also here per requested searchcustumadapter :

public class searchcustomadapter extends arrayadapter<serie> {  private final context context; private final serie[] values;  public searchcustomadapter(context context, serie[] values) {     super(context, r.layout.search_row_layout, values);     this.context = context;     this.values = values; }  @override public view getview(int position, view convertview, viewgroup parent) {      if(convertview==null)     {     layoutinflater inflater = (layoutinflater) context             .getsystemservice(context.layout_inflater_service);     view rowview = inflater.inflate(r.layout.search_row_layout,             parent, false);      textview textviewtitle = (textview) rowview             .findviewbyid(r.id.searchrowtitle);     textview textviewyear = (textview) rowview             .findviewbyid(r.id.searchrowyear);     textviewtitle.settext(values[position].gettitle());     textviewyear.settext(values[position].getyear());       return rowview;       }     else     {         textview textviewtitle = (textview) convertview                 .findviewbyid(r.id.searchrowtitle);         textview textviewyear = (textview) convertview                 .findviewbyid(r.id.searchrowyear);          textviewtitle.settext(values[position].gettitle());         textviewyear.settext(values[position].getyear());          return convertview;     } } 

}

update 2: changed code on onscrollcompleted have part of code:

            pagenumber++;         jsonhandling.getinstance().getjsonfromurl(tvtitel.gettext().tostring(), tvyear.gettext().tostring(), iof, pagenumber);         series.addall(serie.serielistfromjson(this, jsonhandling.getinstance().getjsonarrayseriefromurltmdb(obj)));                          serieslist = series.toarray(new serie[series.size()]);                 lvsearch.setadapter(new searchcustomadapter(this, serieslist)); 

this work, should not way... right?

in

onscrollstatechanged method notifying list view not changing data 

so try call

ongetdata(jsonobject obj) in onscroll may you. 

Comments

Popular posts from this blog

javascript - AngularJS custom datepicker directive -

javascript - jQuery date picker - Disable dates after the selection from the first date picker -