Ich werde ein Gitter von Bildern machen und ich versuche herauszufinden, ob ein Array-Adapter oder eine Baseadaptor verwenden. Während die GridView example die Daten in einem Array speichert, verwendet sie einen BaseAdapter anstelle eines ArrayAdaptors. Ich bin neugierig, warum das so ist. Eine Sache, die ich an einem ArrayAdapter bemerkte, ist, dass sein Konstruktor aus einem unbekannten Grund eine textViewResourceId
nimmt - obwohl die Dokumentation sagt, dass die getView verwendet werden kann, um es mit anderen Arten von Ansichten zu arbeiten. Also, wenn ich ein festes Raster von Bildern für ein Menü möchte, welche Klasse würden Sie empfehlen zu wählen?BaseAdapter oder ArrayAdaptor - Android
18
A
Antwort
48
Normalerweise wählen Sie Ihre Adapterklasse basierend auf den Modelldaten aus. Wenn Sie eine ArrayList
Objekte haben, verwenden Sie ArrayAdapter
. Wenn Sie eine Cursor
aus einer Datenbankabfrage haben, verwenden Sie eine CursorAdapter
. BaseAdapter
kann für alles verwendet werden, aber es erfordert mehr Codierung, da es kein angeborenes Wissen darüber hat, wie man über die Daten iteriert.
Verwandte Themen
- 1. Android BaseAdapter mit Fragment
- 2. Galerie und baseAdapter Inkrementierung android
- 3. Android Baseadapter zum Füllen von ListView
- 4. android-notifyDataSetChanged funktioniert nicht auf BaseAdapter
- 5. BaseAdapter: hasStableIds() auf false setzen?
- 6. Ist der BaseAdapter von Android ein Beispiel für ein Adaptermuster?
- 7. getView nicht auf BaseAdapter-Klasse mit Android Studio
- 8. beenden Aktivität von benutzerdefinierten BaseAdapter
- 9. Android: Benutzerdefinierte ListAdapter Erweiterung BaseAdapter stürzt beim Start der Anwendung
- 10. MultiAutoCompleteTextView mit benutzerdefiniertem Adapter (BaseAdapter)
- 11. Wie Datenbankänderung in BaseAdapter melden?
- 12. geht Mein Code in BaseAdapter Mit picker in BaseAdapter für ein Fragment
- 13. Kann keine neue Klasseninstanz für BaseAdapter erstellen
- 14. Wie man onclick button in baseAdapter verwendet
- 15. Fehler bei Implementierung eigene Listenansicht mit BaseAdapter
- 16. So ändern Sie die Ressource in BaseAdapter?
- 17. Implementieren von ListView mit BaseAdapter Abrufen von Daten aus DB
- 18. ListView wird beim Aufruf von notifyDataSetChanged von einem BaseAdapter
- 19. Android: Zugriff auf Elemente in ListView, die mit BaseAdapter gefüllt sind
- 20. Listview mit mehreren Arten von Zeilen Layout - BaseAdapter funktioniert nicht richtig in Android
- 21. Filter Listenansicht von Kopf mit benutzerdefinierten Adapter erweitern baseadapter
- 22. Wie getFilter() mit benutzerdefinierten Adapter zu implementieren, die hier baseadapter
- 23. Wie vorzuladen Bilder FFImageLoading für alle Listenelemente in abgeleiteten Xamarin BaseAdapter-Klasse
- 24. BaseAdapter verursacht, dass ListView beim Scrollen nicht in Ordnung ist
- 25. Wie kann ich zwei ListViews mit einem BaseAdapter verwenden?
- 26. Was ist der Unterschied zwischen ArrayAdapter, BaseAdapter und ListAdapter
- 27. Löschen von Elementen aus einem ListView mit einem benutzerdefinierten BaseAdapter
- 28. BaseAdapter für GridView: getView() nicht immer auf notifyDatasetChanged()
- 29. Erstellen Sie einen BaseAdapter von Arraylist des benutzerdefinierten Objekts
- 30. Konnte nicht aufgelöst werden Konstruktoradapter mit ListView mit Baseadapter
Wenn ich 'ArrayAdaptor' verwende, was mache ich mit der' textViewResourceId', da ich Bilder anstelle von Text verwende? – Casebash
@Casebash: Ignoriere es, überschreibe 'getView()' und gib zurück, was du brauchst. – CommonsWare
Aber Sie müssen etwas übergeben. Würde 0 gut funktionieren oder wäre -1 besser? – Casebash