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)