Apa peran adaptor di Android?


123

Saya ingin tahu kapan , di mana , dan bagaimana adaptor digunakan dalam konteks Android.

Informasi dari dokumentasi pengembang Android tidak cukup bagi saya dan saya ingin mendapatkan analisis yang lebih detail.

Jawaban:


29

Anggaplah Anda ingin menampilkan daftar di aplikasi Android Anda. Untuk ini, Anda akan menggunakan yang ListViewdisediakan oleh Android. ListViewSebenarnya tidak berisi data apa pun. Itu hanya elemen UI tanpa data di dalamnya. Anda dapat mengisi data Anda ListViewdengan menggunakan adaptor Android.

Adapteradalah antarmuka yang implementasinya menyediakan data dan mengontrol tampilan data tersebut. ListViewAdaptor sendiri yang sepenuhnya mengontrol ListViewlayar. Jadi, adaptor mengontrol konten yang ditampilkan dalam daftar serta cara menampilkannya.

The Adapterantarmuka meliputi berbagai metode untuk berkomunikasi data ke ListView. Anda dapat membuat adaptor Anda sendiri dari awal dengan mengimplementasikan 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(){} 

}

Mari tentukan adaptor:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • Parameter pertama: Konteks
  • Parameter kedua: Tata letak baris
  • Parameter ketiga: ID yang TextViewmenjadi tujuan penulisan data
  • Parameter keempat: Larik data

45

Adaptor sumur di Android pada dasarnya adalah jembatan antara komponen UI dan sumber data yang mengisi data ke dalam Komponen UI

Misalnya, Daftar (Komponen UI) diisi dengan menggunakan adaptor daftar, dari larik sumber data.


21
Ini adalah informasi yang sama yang dapat saya peroleh dari dokumentasi. Tapi saya ingin penjelasan rinci
Robin

25

Saya ingin berbagi pemahaman saya.

Ini adalah antarmuka antara sumber data dan tata letak Anda (kemungkinan besar ListView).

Sebuah analogi

Mari kita ambil contoh pengisi daya ponsel, atau lebih tepatnya kabel USB. Kabel dapat dianggap sebagai adaptor, sedangkan sumber data dan tata letak masing-masing dapat dipahami sebagai soket (titik plug-in) dan port USB (titik pengisian daya).

Dalam kasus pengisian daya seluler, sumber daya mungkin berbeda, misalnya mengisi daya dari bank daya, soket atau laptop. Kasus yang sama berlaku untuk adaptor yang digunakan di Android. Sumber data dapat diubah tergantung pada kebutuhan aplikasi.

Singkatnya, adaptor di Android membawa data dari sumber (misalnya ArrayList<>) dan mengirimkannya ke tata letak (file .xml).


2
Contoh terbaik sejauh ini: D Kerja bagus!
Daksh Gargas

8

Adaptor di Android adalah jembatan antara tampilan adaptor (mis. ListView) Dan data yang mendasari untuk tampilan tersebut. Bayangkan bagaimana jadinya dunia tanpa adaptor!

Contoh

  • Tampilan yang memperlihatkan item dalam daftar gulir vertikal. Item berasal dari yang ListAdapterterkait dengan pandangan ini.

  • The ListAdaptermendefinisikan tata letak untuk baris individu dari daftar dan memberikan data ke ListViewmelalui setAdapter()metode ListView.

  • Android menyediakan beberapa adaptor standar; yang paling penting adalah ArrayAdapterdan CursorAdapter.

  • ArrayAdapter dapat menangani data berdasarkan array atau daftar.

  • SimpleCursorAdapter dapat menangani data terkait database.

4

Adaptor pada dasarnya digunakan untuk mengirimkan konten. Satu adaptor yang mungkin Anda miliki di setiap aplikasi adalah CursorAdapter yang memungkinkan Anda mengirimkan konten yang diberikan oleh kursor dari kueri database. ListView hampir selalu memiliki semacam Adaptor.


7
Ini adalah informasi yang sama yang dapat saya peroleh dari dokumentasi. Tapi saya ingin penjelasan rinci
Robin

@Robin: mengapa Anda tidak merayakan ulang tahun 10 tahun pertanyaan Anda dengan "menerima" salah satu balasan. Secara pribadi: 1) Saya menemukan pertanyaan Anda berharga (begitulah saya mengakhiri di sini), 2) Saya menemukan banyak dari balasan ini membantu (termasuk yang ini) ... dan 3) Saya tidak mengerti apa yang Anda maksud dengan " penjelasan yang lebih rinci ". Mungkin itu karena saya lebih tertarik pada "mengapa" (seperti yang dijelaskan di atas) .; Saya lebih tertarik pada "hutan" (seperti tanggapan WarrenFaith) daripada "pohon rinci" (yang SAYA DAPAT dapatkan dari dokumentasi). Harap
beri suara positif

4

Adaptor bertindak sebagai jembatan antara AdapterViewdan data pokok untuk tampilan tersebut. Adaptor menyediakan akses ke item data dan bertanggung jawab untuk membuat tampilan untuk setiap item dalam kumpulan data.

Adaptor adalah cara cerdas untuk menghubungkan Viewdengan beberapa jenis sumber data. Biasanya, tampilan Anda adalah a ListViewdan datanya dalam bentuk Cursoratau Array. Jadi, adaptor datang sebagai subkelas dari CursorAdapteratau ArrayAdapter.


2

Adaptor mengelola model data dan menyesuaikannya dengan baris individual dalam tampilan daftar. Ini memperluas BaseAdapterkelas.

Setiap baris dalam tampilan daftar terdiri dari tata letak yang bisa serumit yang Anda inginkan. Garis tipikal dalam tampilan daftar memiliki gambar di sisi kiri dan dua baris teks di tengah.


0

Adaptor hanya digunakan untuk mencapai konsep listview. Tidak hanya untuk menampilkan daftar data tetapi juga beberapa custom view. Misalkan pelanggan ingin menggunakan daftar yang memiliki lebih banyak textview (tampilan lain) maka, kita harus menggunakan tampilan Adaptor di Android.


0

Ada yang sudah dikasih jawaban ganda, tapi saya mau kasih jawaban yang berbeda.

Adaptor berarti Anda dapat itu penyedia jembatannya .

Adaptor adalah penghubung antara sekumpulan data dan AdapterView yang menampilkan data.


0

Pada akhirnya, adaptor sangat berguna untuk membuat laporan. Jika seseorang ingin menampilkan laporan dari beberapa informasi, seseorang dapat menggunakan alat ini untuk menunjukkan data pada tampilan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.