2011-11-14 14 views
16

ListAdapter'ın bir arabirim olduğunu ve ArrayAdapter bir sınıf olduğunu biliyorum. Böylece sadece ArrayAdapter'i başlatabiliriz. Bir prensibiAndroid'de ArrayAdapter ve ListAdapter arasındaki fark nedir?

ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songNames); 

buluştular Ama biz ListAdapter gerekiyor tam ne yerler de,

ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, songsArray); 

yüzden bilmek istiyorum ile aynı şeyi yapmak başardı?

Teşekkür ederiz

cevap

25

Bu Android ile ilgili değil. Ama genel bir Java sorusu.

Değişkeninizin türü olarak ListAdapter'u kullandığınızda, gerçekten arabirimle ilgilenirsiniz. ArrayAdapter<String>'un belirli bir yöntemini ListAdapter numaralı telefondan temin etmekle ilgilenmeyebilirsiniz. Bunun başlıca nedeni, bağdaştırıcıyı yalnızca görünüm için liste bağdaştırıcısı olarak atayacağınızdır.

Belirli bazı yöntemleri çağırmanız gerekirse, ArrayAdapter<String> hassas türünü kullanabilirsiniz.

Her şey kullanım durumunuza bağlıdır.

0

BaseAdapter İstediğinizi yapmanıza izin veren çok genel bir bağdaştırıcısı. Tüm bağdaştırıcının temel sınıfı.

ArrayAdapter Onun diziler ya Dizi Listeleri veriler için iyi çalışan daha tam uygulanması. Benzer şekilde, verileriniz bir İmleçte ise kullanmanız gereken ilgili bir CursorAdapter var. Her ikisi de BaseAdapter

ürününü genişletir
İlgili konular