Ich bin ein Neuling zu Adapter
. Um mehr über die Implementierung von Adapter
zu lernen, ging ich verschiedene Beispiele in SO und einigen anderen Blogs durch. Ich habe festgestellt, dass viele definieren getCount()
, getItem()
, in einer benutzerdefinierten Adapter-Klasse ArrayAdapter
erweitern und nicht einmal diese Funktionen verwenden. Ich verstehe, dass in einer benutzerdefinierten Klasse, die 'BaseAdapter' erweitert, wir getCount()
, getItem()
, überschreiben müssen, um Dinge zu erledigen.Verwendung von getCount(), getItem(), getItemId() - Klasse, die ArrayAdapter erweitert
Also zu meiner Frage, muss ich diese Funktionen in einer benutzerdefinierten Adapterklasse beim Erweitern ArrayAdapter
definieren?
Hinweis: Was mich wirklich überrascht war, dass, wenn ich eine benutzerdefinierte implementiert Spinner
einen benutzerdefinierten Adapter mit ArrayAdapter
erstreckt, ohne diese Funktionen zu definieren, kein Problem und alles funktionierte gut scheint. Ich bin wirklich verwirrt, ob ich es falsch gemacht habe.
@people, die unten abstimmen. Bitte geben Sie auch den Grund für die Abstimmung an. Vielen Dank. – tpk
Überprüfen Sie einfach die Quellen von 'ArrayAdapter' und sehen Sie, ob diese Methoden bereits implementiert sind und falls Sie die Implementierung nicht ändern wollen - überschreiben Sie sie nicht in Ihrer Klasse. – Egor
'public T getItem (int position) { neue RuntimeException werfen (" Stub! "); } 'ist alles, was ich sehen kann. Sollte ich annehmen, dass wir getItem() im benutzerdefinierten Adapter überschreiben können, ohne '@ Override'-Annotation zu geben? – tpk