What's the role of adapters in Android? What's the role of adapters in Android? android android

What's the role of adapters in Android?


Well adapters in Android are basically a bridge between the UI components and the data source that fill data into the UI Component

For example, Lists (UI Component) get populated by using a list adapter, from a data source array.


Let’s assume you want to display a list in your Android app.For this you will use the ListView provided by Android.ListViews don’t actually contain any data themselves.It’s just a UI element without data in it.You can populate your ListViews by using an Android adapter.

Adapter is an interface whose implementations provide data and control the display of that data.ListViews own adapters that completely control the ListView’sdisplay.So adapters control the content displayed in the list as well as how to display it.

The Adapter interface includes various methods to communicate data to the ListView.You can create your own adapter from scratch by implementing BaseAdapter.

public class ArrayAdapter<T> extends BaseAdapter implements Filterable {// One of the constructorspublic ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects) {    init(context, resource, textViewResourceId, Arrays.asList(objects));}void manyMoreMethods(){} }

Lets define an adapter:

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,   android.R.layout.simple_list_item_1, android.R.id.text1, values);
  • First parameter: Context
  • Second parameter: Layout for the row
  • Third parameter: ID of the TextView to which the data is written
  • Fourth parameter: The array of data


I would like to share my understanding.

It's an interface between the data source and your layout (most probably ListView).

An analogy

Let's take the example of a mobile charger, or rather a USB cable.The wire can be considered as the adapter, while the data source and layout can be understood as the socket (plug-in point) and USB port (charging point) respectively.

In the case of mobile charging,the source of the power may be different,e.g. charging from a power bank, a socket or a laptop.The same is the case for the adapters used in Android.The data source may be changed depending upon the application requirement.

In short, an adapter in Android carries the data from a source(e.g. ArrayList<>)and delivers it to a layout (.xml file).