HeaderViewListAdapter se bloquea de forma aleatoria

Estoy recibiendo accidente al azar en crashlytics y no puedo simularlo. Se bloquea al azar tanto en Android V2 y V4, pero muy muy rara vez :

java.lang.IndexOutOfBoundsException: Invalid index 3, size is 0 at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:257) at java.util.ArrayList.get(ArrayList.java:311) at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:225) at android.widget.AbsListView.obtainView(AbsListView.java:1498) at android.widget.ListView.makeAndAddView(ListView.java:1749) at android.widget.ListView.fillSpecific(ListView.java:1294) at android.widget.ListView.layoutChildren(ListView.java:1580) at android.widget.AbsListView.onLayout(AbsListView.java:1349) at android.view.View.layout(View.java:7320) at android.widget.FrameLayout.onLayout(FrameLayout.java:342) at android.view.View.layout(View.java:7320) at android.widget.FrameLayout.onLayout(FrameLayout.java:342) at android.view.View.layout(View.java:7320) at android.widget.FrameLayout.onLayout(FrameLayout.java:342) at android.view.View.layout(View.java:7320) at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:801) at android.view.View.layout(View.java:7320) at android.widget.FrameLayout.onLayout(FrameLayout.java:342) at android.view.View.layout(View.java:7320) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1263) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1137) at android.widget.LinearLayout.onLayout(LinearLayout.java:1051) at android.view.View.layout(View.java:7320) at android.widget.FrameLayout.onLayout(FrameLayout.java:342) at android.view.View.layout(View.java:7320) at android.widget.FrameLayout.onLayout(FrameLayout.java:342) at android.view.View.layout(View.java:7320) at android.view.ViewRoot.performTraversals(ViewRoot.java:1162) at android.view.ViewRoot.handleMessage(ViewRoot.java:1882) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3701) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624) at dalvik.system.NativeStart.main(NativeStart.java) 

El índice no válido 3, el tamaño es 0 – los índices son aleatorios en los crashlíticos. Estoy utilizando ListView con el encabezado y el pie de página en el fragmento.

En onCreateView :

 mSearchBox = inflater.inflate(R.layout.search_box, mListView, false); mListView.addHeaderView(mSearchBox, null, false); mListView.setAdapter(mAdapter); mAdapter.notifyDataSetChanged(); 

Yo uso el encabezado en ListView para EditText para buscar en ListView (a propósito porque quiero que EditText es desplazable con el contenido de listview). Y también uso addFooterView para mostrar cargador (al cargar los siguientes elementos en la lista).

Puede ver HeaderViewListAdapter línea 225 ( GrepCode ):

 public View getView(int position, View convertView, ViewGroup parent) { // ... // ... code // ... // Footer (off-limits positions will throw an IndexOutOfBoundsException) return mFooterViewInfos.get(adjPosition - adapterCount).view; } 

EDIT: He encontrado similar stackoverflow hilo, pero no es útil para mí: Indexoutofboundsexception con listview Parece Android ListView es un poco escuchado cuando se utiliza el encabezado o pie de página en ListView con fragmentos.

Tuve que establecer el adaptador null en listview antes de que estuviera despejando el adaptador:

 mListView.setAdapter(null); mAdapter.clear(); mAdapter.notifyDataSetChanged(); mListView.setAdapter(mAdapter); 
  • Listview no muestra nada y ocultar datos
  • Bauerca drag-sort-listview ejemplo sencillo
  • ¿Hay alguna manera de probar las pestañas personalizadas de Chrome con Espresso?
  • Disparar un PopupMenu con botones dentro de un elemento ListView
  • Sugerencias para crear un control de árbol en Android
  • SwipeRefreshLayout - Tirar desde el fondo
  • Cambiar el color de fondo del primer elemento en ListView
  • El método get (String) no está definido para el tipo String error al agregar los códigos a la clase filter del adaptador en android
  • Se barajaron las imágenes al desplazar un ListView con un ViewHolder
  • Los elementos de listView tienen texto en blanco al utilizar setAdapter en el subproceso de interfaz de usuario
  • ListView: setItemChecked sólo funciona con ArrayAdapter estándar - NO funciona cuando se utiliza ArrayAdapter personalizado?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.