2010-07-28 14 views
18

Bir görüntü ızgarası oluşturacağım ve bir dizi adaptörünün veya bir baseadaptorun kullanılıp kullanılmayacağını anlamaya çalışıyorum. GridView example, verileri bir dizide saklarken, bir ArrayAdaptor yerine bir BaseAdapter kullanır. Bunun neden olduğunu merak ediyorum. Bir ArrayAdapter hakkında fark ettiğim bir şey, kurucusunun bilinmeyen bir nedenden dolayı textViewResourceId almasıdır - belgeler, getView'ın başka türden görünümlerle de çalışmasını sağlamak için kullanılabileceğini söylemesine rağmen. Yani, bir menü için sabit bir görüntü ızgarası istiyorsam, hangi sınıfı seçmenizi önerirsiniz?BaseAdapter veya ArrayAdaptor - Android

cevap

48

Genellikle adaptör sınıfınızı model verilerinin ne olduğuna göre seçin. ArrayList nesneniz varsa, ArrayAdapter'u kullanın. Bir veritabanı sorgusundan Cursor varsa, bir CursorAdapter kullanın. BaseAdapter, herhangi bir şey için kullanılabilir, ancak daha fazla kodlama gerektirir, çünkü verilerin üzerinde nasıl yinelemeye dair hiçbir bilgi yoktur.

+0

Eğer 'ArrayAdaptor' kullanırsam, metin yerine görüntü kullanıyorum diye "textViewResourceId" ile ne yapabilirim? – Casebash

+1

@Casebash: Bunu dikkate almayın, getView() 'i geçersiz kılın ve ihtiyacınız olanı geri getirin. – CommonsWare

+0

Ama bir şeyleri geçmek zorundasın. 0 işe yarar mı yoksa -1 daha iyi olur mu? – Casebash

İlgili konular