Adaptörlerin Android'deki rolü nedir?


123

Bilmek istiyorum ne zaman , neredeAndroid bağlamında adaptörlerin ne ve nasıl kullanıldığını .

Android'in geliştirici belgelerindeki bilgiler benim için yetersizdi ve daha detaylı bir analiz almak istiyorum.

Yanıtlar:


29

Android uygulamanızda bir liste görüntülemek istediğinizi varsayalım. Bunun için ListViewAndroid tarafından sağlananları kullanacaksınız . ListViewURL'ler aslında herhangi bir veri içermez. Bu, içinde veri olmayan bir UI öğesidir. ListViewBir Android adaptörü kullanarak e- postalarınızı doldurabilirsiniz .

Adapteruygulamaları veri sağlayan ve bu verilerin görüntülenmesini kontrol eden bir arayüzdür. ekranını ListViewtamamen kontrol eden kendi adaptörleri ListView. Böylece adaptörler, listede görüntülenen içeriği ve bunun nasıl görüntüleneceğini kontrol eder.

AdapterArayüz veri iletişim kurmak için çeşitli yöntemler içerir ListView. Uygulayarak sıfırdan kendi adaptörünüzü oluşturabilirsiniz BaseAdapter.

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {

// One of the constructors
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {
    init(context, resource, textViewResourceId, Arrays.asList(objects));
}

void manyMoreMethods(){} 

}

Bir adaptör tanımlayalım:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • İlk parametre: Bağlam
  • İkinci parametre: Satır için düzen
  • Üçüncü parametre: ID TextView Verinin yazıldığı
  • Dördüncü parametre: Veri dizisi

45

Android'deki iyi bağdaştırıcılar, temelde UI bileşenleri ile verileri UI Bileşenine dolduran veri kaynağı arasında bir köprüdür.

Örneğin Listeler (UI Bileşeni), bir veri kaynağı dizisinden bir liste bağdaştırıcısı kullanılarak doldurulur.


21
Bu, belgelerden alabildiğim bilgilerin aynısı. Ama ayrıntılı bir açıklama istiyorum
Robin

25

Anlayışımı paylaşmak isterim.

Bu, veri kaynağı ve düzeniniz arasındaki bir arayüzdür (büyük olasılıkla ListView).

Bir benzetme

Mobil şarj cihazı veya daha doğrusu bir USB kablosu örneğini ele alalım. Kablo, adaptör olarak düşünülebilirken, veri kaynağı ve düzeni sırasıyla soket (bağlantı noktası) ve USB bağlantı noktası (şarj noktası) olarak anlaşılabilir.

Mobil şarj durumunda, güç kaynağı farklı olabilir, örneğin bir güç bankasından, bir soketten veya bir dizüstü bilgisayardan şarj edilebilir. Aynısı Android'de kullanılan adaptörler için de geçerlidir. Veri kaynağı, uygulama gereksinimine bağlı olarak değiştirilebilir.

Kısacası, Android'deki bir adaptör, verileri bir kaynaktan (örn. ArrayList<>) Taşır ve bir düzene (.xml dosyası) teslim eder.


2
Şimdiye kadarki en iyi örnek: D İyi iş!
Daksh Gargas

8

Android'deki bağdaştırıcılar, bağdaştırıcı görünümü (örn. ListView) İle bu görünümün temelindeki veriler arasında bir köprüdür . Adaptörler olmasaydı dünyanın nasıl bir yer olacağını hayal edin!

Örnekler

  • Dikey olarak kayan bir listedeki öğeleri gösteren bir görünüm. Öğeler ListAdapter, bu görünümle ilişkilendirilen öğelerden gelir .

  • ListAdapterListelerin her satır için düzenini tanımlayan ve veri sağlar ListViewile setAdapter()metodu ListView.

  • Android birkaç standart bağdaştırıcı sağlar; en önemlileri ArrayAdapterve CursorAdapter.

  • ArrayAdapter verileri dizilere veya listelere göre işleyebilir.

  • SimpleCursorAdapter veritabanıyla ilgili verileri işleyebilir.

4

Adaptörler temelde içerik sunmak için kullanılır. Muhtemelen her uygulamada sahip olduğunuz bir adaptör, bir veritabanı sorgusundan bir imleç tarafından verilen içeriği teslim etmenizi sağlayan CursorAdapter'dır. Bir ListView neredeyse her zaman bir çeşit Bağdaştırıcıya sahiptir.


7
Bu, belgelerden alabildiğim bilgilerin aynısı. Ama ayrıntılı bir açıklama istiyorum
Robin

@Robin: Neden yanıtlardan birini "kabul ederek" sorunuzun 10. yılını kutlamıyorsunuz? Kişisel olarak: 1) Sorunuzu değerli buldum (burada nasıl buldum), 2) Bu yanıtların birçoğunu yararlı buldum (bu da dahil) ... ve 3) "ile ne demek istediğinize dair hiçbir fikrim yok daha ayrıntılı bir açıklama ". Belki de "neden" ile daha çok ilgilendiğim içindir (yukarıda iyi açıklandığı gibi) .; Ben (whichi "ayrıntılı ağaçlar" den (WarrenFaith tepki gibi) "orman" ilgileniyorum CAN belgelerinden olsun). Lütfen olumlu oy verin ve kabul edin :)
FoggyDay

4

Bağdaştırıcı AdapterView, bu görünüm için bir ve temel alınan veriler arasında bir köprü görevi görür . Adaptör, veri öğelerine erişim sağlar ve veri setindeki her öğe için bir görünüm oluşturmaktan sorumludur.

Adaptörler, bir Viewtür veri kaynağına bağlanmanın akıllı bir yoludur . Tipik olarak, görünümünüz a olur ListViewve veriler bir Cursorveya şeklinde gelir Array. Dolayısıyla adaptörler CursorAdapterveya alt sınıfları olarak gelir ArrayAdapter.


2

Bağdaştırıcı veri modelini yönetir ve bunu liste görünümündeki tek tek satırlara uyarlar. BaseAdapterSınıfı genişletir .

Liste görünümündeki her satır, istediğiniz kadar karmaşık olabilen bir düzenden oluşur. Liste görünümündeki tipik bir satırın sol tarafında bir görüntü ve ortasında iki metin satırı vardır.


0

Adaptör, basitçe listview konseptini elde etmek için kullanılır. Yalnızca veri listesini görüntülemek için değil, aynı zamanda bazı özel görünümü de görüntülemek için. Diyelim ki müşteri daha fazla metin görünümüne sahip listeyi (başka herhangi bir görünüm) kullanmak istiyorsa, Android'de Bağdaştırıcı görünümünü kullanmamız gerekiyor.


0

Zaten birden fazla cevap verilmiş ama farklı bir cevap vermek istiyorum.

Adaptör, bunu yapabileceğiniz anlamına gelir, köprü sağlayıcısı .

Adaptörler, bir veri kümesi ile verileri görüntüleyen AdapterView arasındaki bağlantıdır.


0

Sonunda, adaptörler bir rapor hazırlamak için çok kullanışlıdır. Biri bazı bilgilerin bir raporunu göstermek isterse, verileri görünümde göstermek için bu araç kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.