2015-05-12 12 views
6

Ho una panoramica di riciclaggio, che viene popolata utilizzando un arraylist. Quando rimuovo un elemento dall'elenco, funziona correttamente, fino a quando l'ultimo oggetto non viene rimosso. Di seguito è riportato il codice trovato nel mio adattatore Recyclerview, che rimuove un elemento.

public void removeItem(int position) { 
     itemsData.remove(position); 
     notifyItemRemoved(position); 
    } 

Di seguito è riportato il registro degli arresti anomali. Il registro non mi indirizza in un punto specificato nel mio codice. Quindi non sono sicuro di quale sia la causa del problema.

Ho eseguito alcuni test e registrato la posizione. Se aggiungo un articolo nell'arrayist e notifyItemInserted nella visualizzazione recyclerview, la posizione dell'elemento aggiunto è 0. Se faccio clic sull'elemento aggiunto, la posizione è 0 e se rimuovo l'elemento lo rimuovo nella posizione 0, tuttavia si è schiantato durante la rimozione del prodotto come posizione 0.

java.lang.NullPointerException: Tentativo di richiamare il metodo virtuale 'android.view.ViewGroup $ LayoutParams android.view.View.getLayoutParams()' su un riferimento oggetto null su android.support.v7.widget.OrientationHelper $ 2.getDecoratedStart (OrientationHelper.java:316) su android.support.v7.widget.LinearLayoutManager.findOneVisibleChild (LinearLayoutManager.java:1633) su android.support.v7.widget. LinearLayoutManager.findFirstVisibleChildClosestToS tart (LinearLayoutManager.java:1453) a android.support.v7.widget.LinearLayoutManager.computeScrollOffset (LinearLayoutManager.java:997) a android.support.v7.widget.LinearLayoutManager.computeVerticalScrollOffset (LinearLayoutManager.java:969) a android.support.v7.widget.RecyclerView.computeVerticalScrollOffset (RecyclerView.java:1175) su android.view.View.canScrollVertically (View.java:12835) su android.support.v4.view.ViewCompatICS.canScrollVertically (ViewCompatICS. java: 35) su android.support.v4.view.ViewCompat $ ICSViewCompatImpl.canScrollVertically (ViewCompat.java:1136) su android.support.v4.view.ViewCompat.canScrollVertically (ViewCompat.java:1528) su Android. support.v7.widget.RecyclerView $ LayoutManager.onInitia lizeAccessibilityEvent (RecyclerView.java:6594) su android.support.v7.widget.RecyclerView $ LayoutManager.onInitializeAccessibilityEvent (RecyclerView.java:6573) su android.support.v7.widget.LinearLayoutManager.onInitializeAccessibilityEvent (LinearLayoutManager.java:204) a android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityEvent (RecyclerViewAccessibilityDelegate.java:66) a android.support.v4.view.AccessibilityDelegateCompat $ AccessibilityDelegateJellyBeanImpl $ 1.onInitializeAccessibilityEvent (AccessibilityDelegateCompat.java:228) a android.support.v4 .view.AccessibilityDelegateCompatJellyBean $ 1.onInitializeAccessibilityEvent (AccessibilityDelegateCompatJellyBean.java:56) su android.view.View.onInitializeAccessibilityEvent (View.java:5439).515.053.691,36321 milioni a android.view.View.sendAccessibilityEventUncheckedInternal (View.java:5312) a android.view.View $ AccessibilityDelegate.sendAccessibilityEventUnchecked (View.java:20823) a android.support.v4.view.AccessibilityDelegateCompatIcs.sendAccessibilityEventUnchecked (AccessibilityDelegateCompatIcs. java: 117) a android.support.v4.view.AccessibilityDelegateCompat $ AccessibilityDelegateIcsImpl.sendAccessibilityEventUnchecked (AccessibilityDelegateCompat.java:210) a android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked (AccessibilityDelegateCompat.java:358) a Android. support.v4.view.AccessibilityDelegateCompat $ AccessibilityDelegateJellyBeanImpl $ 1.sendAccessibilityEventUnchecked (AccessibilityDelegateCompat.java:255) su android.support.v4.view. AccessibilityDelegateCompatJellyBean 1 $.sendAccessibilityEventUnchecked (AccessibilityDelegateCompatJellyBean.java:82) a android.view.View.sendAccessibilityEventUnchecked (View.java:5297) a android.view.ViewRootImpl $ SendWindowContentChangedAccessibilityEvent.run (ViewRootImpl.java:6934) a android.view.ViewRootImpl $ SendWindowContentChangedAccessibilityEvent.runOrPost (ViewRootImpl.java:6960) a android.view.ViewRootImpl.postSendWindowContentChangedCallback (ViewRootImpl.java:6161) a android.view.ViewRootImpl.notifySubtreeAccessibilityStateChanged (ViewRootImpl.java:6274) a android.view.ViewGroup. notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) su android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) su android.vi ew.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) a android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) a android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) a android.view. ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) a android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (ViewGroup.java:2772) a android.view.ViewGroup.notifySubtreeAccessibilityStateChanged (

Ogni aiuto è molto apprezzato, grazie!

+0

trovi qualche soluzione? Ho lo stesso problema quando uso 'notifyItemRemoved', MA non ci sono problemi quando si usa' notifyDataSetChanged' – mehdok

+0

No. Purtroppo non l'ho fatto :(Mi dispiace signora/signore – HaloMediaz

risposta

-1

Mettere un segno di spunta per "non null" e dovrebbe andare bene. Qualcosa del genere:

public void removeItem(int position) { 
     if(itemsData != null){ 
     itemsData.remove(position); 
     notifyItemRemoved(position); 
     } 
} 

Spero che questo aiuti.

Problemi correlati