La aplicación se bloquea al dar un índice fuera de los límites en logcat al agregar un pie de página a la vista de lista

Tengo una vista de lista que carga más elementos de lista cuando alcanza el elemento de lista de 20rh usando el escucha de onscroll

Quiero agregar un pie de página que diga cargar más mientras se cargan más elementos de lista

Cuando llego al vigésimo elemento de lista, la aplicación se bloquea y dice idex fuera de límites en logct

mi actividad

public class InterActivity extends Activity 
{

SwipeMenuListView listview;
//ListView listview;

View mFooterView;






@Override
public void onCreate(Bundle savedInstanceState)
{

    super.onCreate(savedInstanceState);
    setContentView(R.layout.inter_layout);
    shrdPreference = new SharedPreference();


    //Execute RemoteDataTask AsyncTask

    new RemoteDataTask().execute();
}




private class RemoteDataTask extends AsyncTask<Void, Void, Void> {
    @Override
    protected void onPreExecute() {
        super.onPreExecute();


        mProgressDialog = new ProgressDialog(InterActivity.this);
        mProgressDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        // Set progressdialog title
        //mProgressDialog.setTitle("BEGINNER CODES");
        // Set progressdialog message
        mProgressDialog.setMessage("Loading. Please wait loading ....");
        mProgressDialog.setIndeterminate(true);
        mProgressDialog.setCancelable(false);
        mProgressDialog.setIndeterminateDrawable(getResources().getDrawable(R.anim.progress_handler));
        // Show progressdialog
        mProgressDialog.show();

    }


    @Override
    protected Void doInBackground(Void... params) {
        // my do in backgroung process

    }

    @Override
    protected void onPostExecute(Void result) {
        // Locate the listview in listview_main.xml
    //  listview = (ListView) findViewById(R.id.inter_layoutListView);

        listview = (SwipeMenuListView) findViewById(R.id.inter_layoutListView);
        // Pass the results into ListViewAdapter.java
        adapter = new FinalAdapter(InterActivity.this,
                                      codelist);
         mFooterView = LayoutInflater.from(InterActivity.this).inflate(R.layout.footer_layout, null);                        

        // Binds the Adapter to the ListView
    listview.setAdapter(adapter);


        // Close the progressdialog
        mProgressDialog.dismiss();

// configura el oyente onscrll

        listview.setOnScrollListener(new OnScrollListener() {

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

                    if (scrollState == SCROLL_STATE_IDLE) {
                        if (listview.getLastVisiblePosition() >= count
                            - threshold) {
                            // Execute LoadMoreDataTask AsyncTask
                            new Loadmore().execute();
                        }
                    }
                }

                @Override
                public void onScroll(AbsListView view, int firstVisibleItem,
                                     int visibleItemCount, int totalItemCount) {
                    // TODO Auto-generated method stub

                }

            });




    }
}





private class Loadmore extends AsyncTask<Void, Void, Void> {


    @Override
    protected void onPreExecute() {

        super.onPreExecute();
    listview.addFooterView(mFooterView);

        }
    @Override
    protected Void doInBackground(Void... params) {
        // my load mmore data process


    }

    @Override
    protected void onPostExecute(Void result) {
        int position = listview.getLastVisiblePosition();



    adapter.notifyDataSetChanged();
        listview.removeFooterView(mFooterView);


listview.setSelectionFromTop(position, 0);


    }
}

   }    

logcat

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
EXCEPCIÓN FATAL: principal 02-29 15: 53: 11.546 23342 23342 E
AndroidRuntime
java.lang.IndexOutOfBoundsException: Índice no válido 9, el tamaño es 0 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
en java.util.ArrayList.throwIndexOutOfBoundsException (ArrayList.java:251)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en java.util.ArrayList.get (ArrayList.java:304)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en com.enlightenme.pac.FinalAdapter.getItem (FinalAdapter.java:55)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en com.enlightenme.pac.FinalAdapter.getView (FinalAdapter.java:83)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en com.baoyz.swipemenulistview.SwipeMenuAdapter.getView (SwipeMenuAdapter.java:65)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.AbsListView.obtainView (AbsListView.java:2588)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.ListView.makeAndAddView (ListView.java:1840)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.ListView.fillDown (ListView.java:681)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.ListView.fillSpecific (ListView.java:1339)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.ListView.layoutChildren (ListView.java:1639)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.AbsListView.onLayout (AbsListView.java:2427)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.View.layout (View.java:14938)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.ViewGroup.layout (ViewGroup.java:4601)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.FrameLayout.onLayout (FrameLayout.java:448)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.View.layout (View.java:14938)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.ViewGroup.layout (ViewGroup.java:4601)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.FrameLayout.onLayout (FrameLayout.java:448)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.View.layout (View.java:14938)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.ViewGroup.layout (ViewGroup.java:4601)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.LinearLayout.setChildFrame (LinearLayout.java:1694)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.LinearLayout.layoutVertical (LinearLayout.java:1552)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.LinearLayout.onLayout (LinearLayout.java:1465) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
en android.view.View.layout (View.java:14938)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.ViewGroup.layout (ViewGroup.java:4601)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.widget.FrameLayout.onLayout (FrameLayout.java:448)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.View.layout (View.java:14938) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime en android.view.ViewGroup.layout (ViewGroup.java:4601) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime en android.view.ViewRootImpl.performLayout (ViewRootImpl.java:2212)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2026)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1236)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.ViewRootImpl $ TraversalRunnable.run (ViewRootImpl.java:5160)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.Choreographer $ CallbackRecord.run (Choreographer.java:791) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
en android.view.Choreographer.doCallbacks (Choreographer.java:591)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.view.Choreographer.doFrame (Choreographer.java:561) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
en android.view.Choreographer $ FrameDisplayEventReceiver.run (Choreographer.java:777)

02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en android.os.Handler.handleCallback (Handler.java:725) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
en android.os.Handler.dispatchMessage (Handler.java:92) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
en android.os.Looper.loop (Looper.java:176) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime en android.app.ActivityThread.main (ActivityThread.java:5365) 02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
en java.lang.reflect.Method.invokeNative (Método nativo) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime
en java.lang.reflect.Method.invoke (Method.java:511) 02-29 15: 53: 11.546 23342 23342 E AndroidRuntime en com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:1102) 02-29 15: 53: 11.546 23342 23342 E Android Tiempo de ejecución
a

nuevo logcat

java.lang.ClassCastException: com.baoyz.swipemenulistview.SwipeMenuListView$1 cannot be cast to android.widget.HeaderViewListAdapter
02-29 17:54:03.976 27184 27184 E   AndroidRuntime                               at android.widget.ListView.removeFooterView(ListView.java:396)
02-29 17:54:03.976 27184 27184 E   AndroidRuntime                               at com.enlightenme.pac.InterActivity$Loadmore.onPostExecute(InterActivity.java:383)

Respuestas a la pregunta(1)

Su respuesta a la pregunta