0

I am having an expandable list-view in which i load data's from sq-lite. First i have set a limit to load 10 data's when the list-view scroll reaches end i have used the async task to load another 10 items from database.This part works fine but when all the data from sq-lite is loaded and when i scroll the list-view it shows the progress dialog again.can anyone tell me how to disable the async task when the list view has loaded all data from sq-lite.

Listscroll:

 @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            listAdapter.isScrolling(true);

            //what is the bottom item that is visible

            int lastInScreen = firstVisibleItem + visibleItemCount;

            //is the bottom item visible & not loading more already? Load more!
            if ((lastInScreen == totalItemCount) && !(loadingMore)) {
                new LoadDataTask().execute();


            }

        }

Async Task:

  class LoadDataTask extends AsyncTask<String, Void, String> {

    @Override
    protected void onPreExecute() {
        pDialog = new ProgressDialog(NewDaybook_Activity.this);
        // Set progressdialog title
        pDialog.setTitle(getResources().getString(R.string.app_name));
        // Set progressdialog message
        pDialog.setMessage("Loading more...");
        pDialog.setIndeterminate(false);
        // Show progressdialog
        if(olimit>totalcount){
            pDialog.dismiss();
        }else{
            pDialog.show();
        }


    }

    @Override
    protected String doInBackground(String... olimits) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {

                try {

                    olimit = olimit + 10;
                    daybooks = new ArrayList<Daybook>();
                    if (olimit > totalcount) {
                        loadingMore = false;
                    } else {
                        daybooks = databaseHandler.getAlldaybookentriesdatewise(olimit);
                        daybooklists = new ArrayList<Daybooklist>();

                        listDataHeader = new ArrayList<String>();
                        listDataChild = new HashMap<String, List<Daybooklist>>();
                        for (int i = 0; i < daybooks.size(); i++) {
                            String date = daybooks.get(i).getDate();
                            if (date != null) {
                                String s = date;
                                String[] spiliter = s.split("-");
                                String year = spiliter[0];
                                String month = spiliter[1];
                                String dates = spiliter[2];
                                if (month.startsWith("01")) {
                                    disorderedlist = dates + "Jan" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("02")) {
                                    disorderedlist = dates + "Feb" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("03")) {
                                    disorderedlist = dates + "Mar" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("04")) {
                                    disorderedlist = dates + "Apr" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("05")) {
                                    disorderedlist = dates + "May" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("06")) {
                                    disorderedlist = dates + "Jun" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("07")) {
                                    disorderedlist = dates + "Jul" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("08")) {
                                    disorderedlist = dates + "Aug" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("09")) {
                                    disorderedlist = dates + "Sep" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("10")) {
                                    disorderedlist = dates + "Oct" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("11")) {
                                    disorderedlist = dates + "Nov" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                } else if (month.startsWith("12")) {
                                    disorderedlist = dates + "Dec" + year;
                                    disorderedlist = disorderedlist.replaceAll("\\s+", "");
                                }
                                listDataHeader.add(disorderedlist);
                            }

                            chid = new ArrayList<Daybooklist>();
                            daybooklists = databaseHandler.getAllDaywisedaybookdetails(date);
                            for (int j = 0; j < daybooklists.size(); j++) {


                                String name = daybooklists.get(j).getName();
                                String desc = daybooklists.get(j).getDescription();
                                String type = daybooklists.get(j).getType();
                                String usertype = daybooklists.get(j).getUsertype();
                                String amtin = daybooklists.get(j).getAmountin();
                                String amtout = daybooklists.get(j).getAmountout();
                                String extamt = daybooklists.get(j).getExtraamt();
                                String mobno = daybooklists.get(j).getMobileno();
                                String dates = daybooklists.get(j).getSdate();
                                String time = daybooklists.get(j).getCtime();


                                chid.add(new Daybooklist(name, desc, type, usertype, amtin, amtout, extamt, mobno, dates, time));


                            }


                            listDataChild.put(listDataHeader.get(i), chid);


                        }

                    }


                } catch (Exception e) {
                    e.printStackTrace();
                }


            }
        });


        return null;
    }

    @Override
    protected void onPostExecute(String disorderedlist) {


        listAdapter.setTransactionList(listDataHeader, listDataChild);
        for (int i = 0; i < listAdapter.getGroupCount(); i++) {
            expListView.expandGroup(i);
        }
        loadingMore = false;

    }

    @Override
    protected void onCancelled() {
        // Notify the loading more operation has finished
       // pDialog.dismiss();
        loadingMore = false;
    }
}
Ramesh R
  • 300
  • 4
  • 18

0 Answers0