RecyclerView java.lang.IndexOutOfBoundsException: Inkonsistenz erkannt. Ungültige Positionsposition bei Wiederaufnahme von hinzugefügtem Fragment

Kannst du mir bitte helfen?

Hier ist mein Code, um Fragment hinzuzufügen

  • Wie integriert man Robolectric, Maven, ActionBarSherlock (und vorzugsweise + IntelliJ) in ein Android-Projekt?
  • Ändern der Aktionsüberlauf-Textfarbe in der ActionBar
  • Android-Kamera drehen
  • Wie kann man den ganzen Android-Betriebssystem-Code?
  • Umgehung android usb Host Berechtigung Bestätigung Dialog
  • Android - Senden HTTPS Get Request
  • mRecyclerView.addOnItemTouchListener( new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() { @Override public void onItemClick(View view, int position) { if (!IsScrolling) { Fragment fragment = new ProductInfoFragment(); Bundle bundle = new Bundle(); bundle.putString("prodID", mItems.get(position).getproductID()); bundle.putString("catName", catName); fragment.setArguments(bundle); FragmentManager fragmentManager = getActivity().getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); fragmentTransaction.add(R.id.fragmentContainer, fragment, "ProuctInfoFragment"); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); mItems.clear(); } } }) ); 

    Aber wenn ich aus dem hinzugefügten Fragment zurückkehren habe ich diesen Fehler und meine App-Crash.

     FATAL EXCEPTION: main Process: com.tiseno.poplook, PID: 2617 java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 5(offset:5).state:9 at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4401) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4359) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1961) at android.support.v7.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:438) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1333) at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1161) at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1018) at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:3807) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858) at android.view.Choreographer.doCallbacks(Choreographer.java:670) at android.view.Choreographer.doFrame(Choreographer.java:603) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:224) at android.app.ActivityThread.main(ActivityThread.java:5514) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

    Warum passiert dies? Bitte helfen Im mit zwei Fragment. Die Produktliste fragent und Produktdetails Fragment

  • Android N nicht kompilieren in App-Abrechnung AIDL
  • Wie man eine rechteckansicht in showcaseview für listview macht
  • Android gradle build System.getEnv ("RELEASE_PASSWORD") gibt null zurück
  • Android: So aktivieren / deaktivieren Sie Wifi oder Internet Connection programmgesteuert
  • Warum Android-XML-Layout-Datei nicht erkennt Content-Unterstützung durch Strg + Leerzeichen?
  • Datenerfassung mit Android über USB
  • 2 Solutions collect form web for “RecyclerView java.lang.IndexOutOfBoundsException: Inkonsistenz erkannt. Ungültige Positionsposition bei Wiederaufnahme von hinzugefügtem Fragment”

    Sie rufen mItems.clear(); Ohne den RecyclerView -Adapter zu benachrichtigen, dass sich etwas in den Daten geändert hat. Nach jeder Änderung der vom Adapter verwendeten Daten müssen Sie adapter.notifyDataSetChanged(); aufrufen adapter.notifyDataSetChanged();

    Sehen Sie dies .

    Vor Fehler Vor Fehler

    Versuche dies

    Ich stand vor dem gleichen Problem, wenn du deine Liste löschst, musst du den Adapter benachrichtigen, denn wenn du die Liste wechsest und der Adapter eine alte Liste enthält, musst du den Adapter nach dem Löschen der Liste benachrichtigen, bevor ich neue Elemente im Adapter hinzufüge

    1. Mache Instanz von Datenmitgliedern beim Start deiner Klasse

       ArrayList<HashMap<String,String>> yourarraylist =new ArrayList<>(); Youradaptername instance; 
    2. Nach dem Löschen der Liste benachrichtigen Sie den Adapter

        yourarraylist .clear(); instance.notifyDataSetChanged(); 

    Nach Fehler Nach Fehler

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.