Ich habe eine Ausnahme, von der ich nie gedacht hätte, dass ich sie sehen würde. Eine Klassenausnahme des Adapters beim Entfernen einer Fußzeilenansicht von einer ListView (sic).
%Vor%Wie kann das passieren? Was hat das Entfernen einer Fußzeile mit einer Klassenausnahme zu tun ????
Die Liste ist ein Multi-List-Adapter vielleicht deshalb, aber immer noch eine Klasse Cast Ausnahme zum Entfernen einer Fußzeile (sic).
Fügen Sie Ihre Fußzeilenansicht zu ListView
hinzu, bevor Sie setAdapter()
method aufrufen.
Hinzugefügt:
%Vor%Seit: API Level 1 Fügen Sie eine feste Ansicht hinzu, die am Ende der Liste angezeigt wird. Wenn addFooterView mehr als einmal aufgerufen wird, werden die Ansichten in der Reihenfolge angezeigt, in der sie hinzugefügt wurden. Mit diesem Aufruf hinzugefügte Ansichten können den Fokus verwenden, wenn sie möchten.
HINWEIS: Rufen Sie dies auf, bevor Sie setAdapter aufrufen. Dies ist so, dass ListView den angegebenen Cursor mit einem umbrechen kann, der auch Kopf- und Fußzeilenansichten berücksichtigt.
Parameter v Die hinzuzufügende Ansicht.
Auch können Sie dies interest post <überprüfen / a>.
Hoffe, das hilft.
Dies ist ein Code für die obige Antwort, es funktionierte in meinem Fall:
Ich musste eine footerView (es ist eine loadingView in einer listView mit Paginierung) zu meinem listView setzen, bevor ich den Adapter einstelle und ihn dann entferne. Zuerst habe ich meine loadingView aus einer Layout-Datei in OnCreate-Methode initialisiert:
%Vor%Dann habe ich diese Problemumgehung auf die gleiche Weise verwendet:
%Vor%Wo
%Vor% Das Problem kommt nicht von removeFooterView()
, sondern von addFooterView()
.
Wenn Sie die Dokumentation lesen, wird ein Wrapper zu Ihrem Adapter hinzugefügt:
Wenn der ListView-Adapter HeaderViewListAdapter nicht erweitert, wird er mit einer unterstützenden Instanz von WrapperListAdapter umschlossen.
Daher müssen Sie den Getter zum Abrufen des verpackten Adapters verwenden und ihn auf Ihren Adapter übertragen. So:
%Vor%Ich hoffe, dies wird Ihnen bei Ihrem Problem helfen.
Mit freundlichen Grüßen
Wenn Sie zu den anderen Antworten hinzufügen, wenn Sie Fußzeilen dynamisch hinzufügen / entfernen (z. B. wenn sie den unteren Rand Ihrer Liste erreichen und dann eine Fußzeilenansicht hinzufügen), ist es am einfachsten, setAdapter
in Ihrem zu überschreiben ListView
und fügen Sie dort ein neues View-Objekt als Fußzeile hinzu. Dadurch wird sichergestellt, dass der Adapter in HeaderViewListAdapter
:
Tags und Links android