Wczytaj więcej ListView na dole przewijania

W MainActivity tworzę DownloadTask, który zapełnia klasę modelu, następnie listview przez klasę CustomListAdapter, ale utworzyłem funkcję rozpoznawania końca przewijania i chcę załadować więcej elementów do widoku listy. Czytałem i przeglądałem kod w internecie, ale nie potrafię tego rozwiązać, ponieważ jest inny. Klasa MainActivity

public void updateList() {
        adap = new CustomListAdapter(this, feedList, null);

         feedListView.setAdapter(adap);
         feedListView.setOnScrollListener(new OnScrollListener() {

             public void onScrollStateChanged(AbsListView view,
                     int scrollState) { // TODO Auto-generated method stub
                 int threshold = 1;
                 int count = feedListView.getCount();

                 if (scrollState == SCROLL_STATE_IDLE) {
                     if (feedListView.getLastVisiblePosition() >= count
                             - threshold) {
                         mHandler = new Handler();
                         mIsLoading = true;


               Toast.makeText(getApplicationContext(), "END",   Toast.LENGTH_LONG).show();
                     }
                 }
             }

             public void onScroll(AbsListView view, int firstVisibleItem,
                     int visibleItemCount, int totalItemCount) {


             }

         });


    }


     public class DownloadFilesTask extends AsyncTask<String, Integer, Void> {

         @Override
         protected void onProgressUpdate(Integer... values) {
         }

         @Override
         protected void onPostExecute(Void result) {
                 if (null != feedList) {
                         updateList();
                 }

                 if (progressbar.isShown()) {
                  progressbar.setVisibility(View.INVISIBLE); 
                 }

         }

         @Override
         protected Void doInBackground(String... params) {
                 String url = params[0];

                 // getting JSON string from URL
                 JSONObject json = getJSONFromUrl(url);

                 //parsing json data
                 parseJson(json);
                 return null;
         }}
         public JSONObject getJSONFromUrl(String url) {
         InputStream is = null;
         JSONObject jObj = null;
         String json = null;

         // Making HTTP request
         try {
                 // defaultHttpClient
                 DefaultHttpClient httpClient = new DefaultHttpClient();
                 HttpPost httpPost = new HttpPost(url);

                 HttpResponse httpResponse = httpClient.execute(httpPost);
                 HttpEntity httpEntity = httpResponse.getEntity();
                 is = httpEntity.getContent();

                 BufferedReader reader = new BufferedReader(new InputStreamReader(
                                 is, "iso-8859-1"), 8);
                 StringBuilder sb = new StringBuilder();
                 String line = null;
                 while ((line = reader.readLine()) != null) {
                         sb.append(line + "\n");
                 }
                 is.close();
                 json = sb.toString();
         } catch (UnsupportedEncodingException e) {
                 e.printStackTrace();
         } catch (ClientProtocolException e) {
                 e.printStackTrace();
         } catch (IOException e) {
                 e.printStackTrace();
         }

         try {
                 jObj = new JSONObject(json);
         } catch (JSONException e) {
                 Log.e("JSON Parser", "Error parsing data " + e.toString());
         }

         // return JSON String
         return jObj;

   }

   public void parseJson(JSONObject json) {
         try {

                 // parsing json object
                 if (json.getString("status").equalsIgnoreCase("ok")) {
                         JSONArray posts = json.getJSONArray("posts");




                         feedList = new ArrayList<FeedItem>();

                         for (int i = 0; i < posts.length(); i++) {

                                 JSONObject post = (JSONObject) posts.getJSONObject(i);
                                 FeedItem item = new FeedItem();

                                /////.....  
                                 feedList.add(item); 



                         }

                         } 



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

CustomListAdapter

 public class CustomListAdapter extends BaseAdapter  
{



    private int mCount = 25;
    private ArrayList<FeedItem> listData;
    private LayoutInflater layoutInflater;
    private Context mContext;
    private ArrayList<String> data;
    protected ListView feedListView;

    public CustomListAdapter( Context context, ArrayList<FeedItem> listData)
    { 


        this.listData = listData;
        layoutInflater = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        mContext = context;

    }

    public void addMoreItems(int count) {
        mCount += count;
        notifyDataSetChanged();
    }


    @Override
    public int getCount()
    {
        return mCount;
    }

    @Override
    public Object getItem(int position)
    {
        return position;
    }

    @Override
    public long getItemId(int position)
    {
        return position;
    }


    public View getView( int position, View convertView, ViewGroup parent)
    {
     final ViewHolder holder;
     View row=convertView;
        if ((row == null) || (row.getTag()==null)) {

         convertView = layoutInflater.inflate(R.layout.list_row_layout, null);
         holder = new ViewHolder();
      ////
         convertView.setTag(holder);






        }
        else
        {
            holder = (ViewHolder) convertView.getTag();

        }

       final FeedItem newsItem = (FeedItem) listData.get(position);
      /////



        return convertView;
    }


static class ViewHolder
    {
        ////
    }


}

Kiedy dotrę do dna, powstaje toast.

questionAnswers(3)

yourAnswerToTheQuestion