Android Tutorial
Software Setup and Configuration
Android Studio
File Structure
Components
Core Topics
Layout
View
Button
Intent and Intent Filters
Toast
RecyclerView
Fragments
Adapters
Other UI Component
Image Loading Libraries
Date and Time
Material Design
Bars
Working with Google Maps
Chart
Animation
Database
Advance Android
Jetpack
Architecture
App Publish
App Monetization
ArrayAdapter
is a type of adapter in Android that can be used with views like ListView
, GridView
, or Spinner
to display an array of objects. It creates a view for each object in the array, and you can control how each item is displayed by overriding the getView()
method or by providing a custom layout.
res/layout/activity_main.xml
):Here's a simple ListView
:
<ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent"/>
Let's populate this ListView
with an array of strings:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val items = arrayOf("Apple", "Banana", "Cherry", "Date", "Fig") val adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items) val listView: ListView = findViewById(R.id.listView) listView.adapter = adapter } }
In the above code, the ArrayAdapter
is using a default layout (simple_list_item_1
) provided by Android.
If you want to display a more complex item layout, you can create a custom layout and override the getView()
method.
res/layout/list_item.xml
):<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/textItem" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:textSize="18sp"/>
class CustomArrayAdapter(context: Context, private val resource: Int, private val items: Array<String>) : ArrayAdapter<String>(context, resource, items) { override fun getView(position: Int, convertView: View?, parent: ViewGroup): View { val view: View = convertView ?: LayoutInflater.from(context).inflate(resource, parent, false) val textItem: TextView = view.findViewById(R.id.textItem) textItem.text = items[position] return view } }
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val items = arrayOf("Apple", "Banana", "Cherry", "Date", "Fig") val adapter = CustomArrayAdapter(this, R.layout.list_item, items) val listView: ListView = findViewById(R.id.listView) listView.adapter = adapter } }
In this example, the custom layout has only a TextView
, but in a real-world scenario, you might have more complex layouts with multiple views, images, buttons, etc. Adjust the getView()
method accordingly to bind the data to the custom layout.
Using ArrayAdapter in Android Kotlin:
ArrayAdapter
in Android is a bridge between a ListView
and the underlying data source, typically an array or a list. It helps in displaying data in a structured way.val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataArray) listView.adapter = arrayAdapter
Introduction to ArrayAdapter in Android:
ArrayAdapter
simplifies the process of binding data to views. It is commonly used with ListView
to display a scrollable list of items.val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataArray) listView.adapter = arrayAdapter
Custom ArrayAdapter example in Android:
ArrayAdapter
allows you to define a custom layout for each item in the list.class CustomAdapter(context: Context, resource: Int, objects: List<MyData>) : ArrayAdapter<MyData>(context, resource, objects) { // Override getView() to customize item view } val customAdapter = CustomAdapter(this, R.layout.custom_list_item, dataList) listView.adapter = customAdapter
Populating ListView with ArrayAdapter in Android:
ArrayAdapter
simplifies the process of populating a ListView
with data. It takes care of the view creation and binding.val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataArray) listView.adapter = arrayAdapter
Creating a simple ArrayAdapter in Android:
ArrayAdapter
involves specifying the context, layout for each item, and the data source.val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataArray) listView.adapter = arrayAdapter
ArrayAdapter for Spinner in Android example:
ArrayAdapter
can be used with Spinner
to create a dropdown menu with a list of items.val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, spinnerData) arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) spinner.adapter = arrayAdapter
Filtering data with ArrayAdapter in Android:
ArrayAdapter
supports filtering by implementing a Filter
class. This is useful when dealing with large datasets.val arrayAdapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, dataArray) listView.adapter = arrayAdapter arrayAdapter.filter.filter("FilterText")
ArrayAdapter with custom layout in Android:
ArrayAdapter
.val customAdapter = ArrayAdapter<String>(this, R.layout.custom_list_item, dataArray) listView.adapter = customAdapter