2010-07-28 13 views
18

Mam zamiar zrobić siatkę obrazów i staram się dowiedzieć, czy użyć adaptera macierzy lub baseadaptor. Podczas gdy GridView example przechowuje dane w tablicy, korzysta z BaseAdapter zamiast ArrayAdaptor. Jestem ciekawy, dlaczego tak jest. Jedną z rzeczy, które zauważyłem w ArrayAdapter, jest to, że jego konstruktor pobiera textViewResourceId z jakiegoś nieznanego powodu - chociaż dokumentacja mówi, że można użyć getView również do pracy z innymi widokami. Więc jeśli chcę mieć ustaloną siatkę zdjęć do menu, którą klasę poleciliby Państwo wybrać?BaseAdapter lub ArrayAdaptor - Android

Odpowiedz

48

Zazwyczaj wybiera się klasę adaptera na podstawie danych modelu. Jeśli masz obiekt ArrayList, użyj ArrayAdapter. Jeśli masz Cursor z zapytania bazy danych, użyj CursorAdapter. BaseAdapter może być używany do wszystkiego, ale wymaga więcej kodowania, ponieważ nie ma wbudowanej wiedzy o tym, jak iterować dane.

+0

Jeśli używam 'ArrayAdaptor', co zrobić z' textViewResourceId' biorąc pod uwagę, że używam obrazów zamiast tekstu? – Casebash

+1

@Casebash: Zignoruj ​​go, zastąp 'getView()' i zwróć to, czego potrzebujesz. – CommonsWare

+0

Ale musisz coś przekazać. Czy 0 działałoby dobrze, czy -1 byłoby lepsze? – Casebash

Powiązane problemy