I'm stuck in implementing Pagination in Android. I need help to creating pagination with Sqlite local database at the end of List-view Scrolling.I'm trying to add 10 items per page and increase the local page index up to 5 times on List view Scrolling at the end and append the next 10 Sqlite data rows in List-view, but something is wrong with my code. Only 1 page size creating when I scrolling 2nd time page size does not increase by 1 and progress-bar is running contentiously. Can some one help me to solve this.
Here is my Code for ListView Scrolling.
listView.addFooterView(footer);// Implementing scroll refreshlistView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView absListView, int i) { } @Override public void onScroll(AbsListView absListView, int firstItem, int visibleItemCount, final int totalItems) { //Log.e("Get position", "--firstItem:" + firstItem +" visibleItemCount:" + visibleItemCount +" totalItems:" + totalItems +" pageCount:" + pageCount); int total = firstItem + visibleItemCount; Log.e("", "onScroll LocalPages=" + LocalPages); // Total array list i have so it if (pageCount < LocalPages) { if (total == totalItems) { // Execute some code after 8 seconds have passed Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { listView.addFooterView(footer); OFFSET = pageCount * 10 ; //Log.e("","After OFFSET pageCount =" + pageCount +" OFFSET value ="+OFFSET); List<All_Post> allDesc = dbhelper.getAllDescriptions(OFFSET); for (All_Post all_Post : allDesc) { descArray.add(all_Post); } if(adapter != null) { adapter.notifyDataSetChanged(); listView.setAdapter(adapter); listView.setSelection(totalItems); pageCount += 1; Log.e(""," pageCount =" + pageCount +" LocalPages="+LocalPages); } } }, 8000); } } else { Log.e("hide footer", "footer hide"); listView.removeFooterView(footer); } }});
Thanks in advance.