Adapterklassen-Ausnahmefehler beim Entfernen einer Fußzeilenansicht?

8

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).

    
Code Droid 29.09.2012, 02:26
quelle

4 Antworten

12

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.

Quelle

Auch können Sie dies interest post <überprüfen / a>.

Hoffe, das hilft.

    
Vishal Vyas 29.09.2012 02:44
quelle
9

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%     
wzbozon 28.11.2013 17:42
quelle
1

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

    
Ionut Negru 26.09.2014 06:48
quelle
0

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 :

eingeschlossen wird %Vor%     
ono 21.12.2015 01:30
quelle

Tags und Links