"Observer … wurde nicht registriert" Fehler

Ich arbeite an einer Android-Anwendung, und wenn ich versuche, große Mengen an Daten in einer listview , listview ich folgende Fehlermeldung:

 01-24 18:06:32.214: INFO/System.out(9244): EX:Observer android.widget.AdapterView$AdapterDataSetObserver@43c9b200 was not registered. 

  • Mit SAX Parser erhalten Sie den Wert eines Attributs
  • Service nicht verfügbar beim Aufruf von geoCoder.getFromLocation ()
  • Wie man einen benutzerdefinierten Keystore für das Debugging in Eclipse für Android
  • Was ist der richtige, nicht veraltete Weg, um das Gerät aufzuwachen?
  • Wie kann ich System-Icons in meiner Android-App verwenden?
  • Mach ein bild mit android ndk - kamera api
  • Android Plattenspielplatz Video
  • SearchView in OptionsMenu nicht volle Breite
  • Android assetManager
  • Mehrere Markierungen mit Text auf Android Google Maps API v2
  • Executor Singleton nicht nach dem Upgrade von Android-Studio gestartet
  • Android Studio-Gradle-Fehler mit Top-Level-Ausnahme
  • 6 Solutions collect form web for “"Observer … wurde nicht registriert" Fehler”

    Ich habe diesen Fehler auch
    In meinem Fall wurde diese Ausnahme (Observer * nicht registriert) geworfen, weil ich angerufen habe

     setAdapter(Adapter) 

    mehrmals.

    beispielsweise:

     MyAdapter (extends BaseAdapter) vla; ListView lv; for (int i = 0; i < 2; i++) { vla.clear(); vla.add(tv); lv.setAdapter(vla); } 

    Das Fix hier ist zu platzieren
    v.setAdapter(vla);
    außerhalb der Schleife, wodurch mehrere Anrufe vermieden werden.

    nach fix keine Ausnahme mehr
    beste Grüße, Flut. (fdr atinkircle mail dot ru)

    Ich habe in diesem Problem mehrmals beim Umgang mit Listenansichten geführt. Wenn Sie einen benutzerdefinierten Adapter mit einem bearbeiteten Text verwenden, möchten Sie einen clearFocus () machen, bevor Sie den Adapter aktualisieren. Beobachter, der nicht registriert ist, wird durch die Listenansicht verursacht, die ein Kind löscht, das sich auf die Aktivität konzentriert

    Wie ich das mache: das ist der Besitzer für meinen benutzerdefinierten Adapter

     class viewHolder { public viewHolder() { views = new ArrayList<viewInfo>(); } public int position; public ArrayList<viewInfo> views; public View view; } 

    Danach rufe ich eine unfocusAll () an, die aus:

     public void unFocusAll() { viewHolder holder = (viewHolder) v.getTag(); if (holder != null) { holder.view.clearFocus(); } } 

    Also, bevor du deine Listview anrufst, musst du tun

     CustomAdapter aa = new CustomAdapter(); if (aa != null) { aa.unFocusAll(); } 

    Ich stand vor dem gleichen Problem und es stellte sich heraus, dass es sich um ein Thema handelt. Mehrere Threads rufen setAdapter der nicht scheinbar threadsafe ist. Nachdem Sie sichergestellt haben, dass alle setAdapter Aufrufe auf demselben Thread durchgeführt wurden, wurde das Problem behoben.

    Was für mich gut funktionierte, war, meinen Code zu zwingen, ihn nur auf den UI-Thread zu ändern:

     runOnUiThread(new Runnable() { @Override public void run() { final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.rc_view); recyclerView.setAdapter(new MyAdapter(items)); } }); 

    Ich hatte dieses Problem auch heute und die Antwort der Flut half mir, es zu lösen. In meinem Fall würde der Fehler auftauchen, wann immer ich von einer anderen auf meine Anwendung zurückgekehrt war, also wurde die Methode setAdapter immer zweimal aufgerufen.

    Das hat mir geholfen, es zu vermeiden:

     if ( pager.getAdapter() == null ){ pager.setAdapter(pagerAdapter); } 

    Vielen Dank!

    bei Fragment, das den Viewpager enthält
    @Override
    public void onDestroyView () {
    super.onDestroyView ();
    viewDestroyed = true;
    }

    dann bevor du den Adapter überprüftest
    wenn (viewDestroyed)
    pager.setAdapter (Adapter)

    freundliche Grüße

    Einfach in deinem Adapter onGroupCollapsed überschreiben .

    Zu deinem Adapter hinzufügen:

     @Override public void onGroupCollapsed(int groupPosition) { } 
    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.