Die Methode removeFooterView von Android-ListView meldet einen java.lang.ClassCastException-Fehler

    Als die ListView nach unten gescrollt ist, ist beim automatischen Laden der nächsten Datenseite ein Fehler aufgetreten. Ich habe lange Probleme. Ich habe viele Informationen im Internet gesucht, aber ich verstehe immer noch nicht, wo der Fehler liegt .
Als ich mich heute wieder mit diesem Problem beschäftigte, wurde es mir plötzlich klar.

Schauen Sie sich zuerst einen Teil des Codes in der setAdapter-Methode von ListView an:

    public void setAdapter(ListAdapter adapter) {  
            ............  
            if (mHeaderViewInfos.size() > 0|| mFooterViewInfos.size() > 0) {  
                mAdapter = new HeaderViewListAdapter(mHeaderViewInfos, mFooterViewInfos, adapter);  
            } else {  
                mAdapter = adapter;  
            }  
            ............  
        }  

    Ich kann sehen, dass es nichts gibt.Die allgemeine Bedeutung des Codes ist, dass, wenn die ListView keine HeaderView oder FooterView hat, der mit der ListView verknüpfte Adapter der übergebene Parameter Adapter ist. Wenn ja, wird der ursprüngliche Adapter in HeaderViewListAdapter gepackt .
An dieser Stelle verstehe ich ungefähr, wo ich falsch liege, da die footerView nicht auf der ersten Seite verwendet wird, der am Anfang erstellte Adapter also nicht HeaderViewListAdapter ist, und dann gibt es Operationen zum Hinzufügen und Löschen von footerView beim Laden der nächsten Seite. aber der aktuelle Adapter ist nicht HeaderViewListAdapter, was zu einem Fehler führt und einen java.lang.ClassCastException-Fehler meldet.
Sobald Sie den Fehler verstanden haben, haben Sie eine entsprechende Lösung. Wenn Sie vor der Ausführung von setAdapter HeaderView oder FooterView später benötigen, können Sie sie zuerst der ListView hinzufügen. Wenn Sie sie am Anfang nicht anzeigen müssen, können Sie sie sofort nach setAdapter entfernen. Diese Verarbeitung dient hauptsächlich der Durchführung der erstellte Adapter ist HeaderViewListAdapter.


おすすめ

転載: blog.csdn.net/zhiyuan263287/article/details/23350735