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
The ListView
is a UI component that displays a list of items in a scrollable list. It's often backed by an adapter that fetches data and translates that data into views for each item. The most commonly used adapter with ListView
is the ArrayAdapter
.
Here's a basic example to demonstrate how to use a ListView
and an ArrayAdapter
with Java:
activity_main.xml
):Firstly, define the ListView
in your XML layout:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="16dp"> <ListView android:id="@+id/listview" android:layout_width="match_parent" android:layout_height="wrap_content" /> </LinearLayout>
MainActivity.java
):In your activity, set up the ListView
and ArrayAdapter
:
import android.app.Activity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { // Sample data private String[] items = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView listView = (ListView) findViewById(R.id.listview); // Create an ArrayAdapter and set it on the ListView ArrayAdapter<String> adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, // Built-in layout for items items ); listView.setAdapter(adapter); } }
In this example, the ListView
is backed by an ArrayAdapter
that displays an array of strings. We use a built-in Android layout (android.R.layout.simple_list_item_1
) for individual items, but you can design custom layouts for more complex views.
When you run this code, you should see a simple list with 5 items.
For more advanced list functionality (like handling clicks on list items), you'd use listView.setOnItemClickListener(...)
.
If you have a larger dataset or require more flexible list behavior, consider using RecyclerView
instead of ListView
. RecyclerView
is more modern and versatile, though it requires a bit more setup.
ListView in Android using Java example:
Create a ListView in your layout XML file:
<ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="wrap_content"/>
In your Java code, initialize and populate the ListView:
ListView listView = findViewById(R.id.listView); String[] data = {"Item 1", "Item 2", "Item 3"}; ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter);
Android ArrayAdapter with ListView example in Java:
Use ArrayAdapter to populate a ListView with an array of data:
ListView listView = findViewById(R.id.listView); String[] data = {"Item 1", "Item 2", "Item 3"}; ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter);
Android ListView onItemClick event in Java:
Set an OnItemClickListener
to handle item clicks:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { // Handle item click } });
Populating ListView from SQLite database in Android with Java:
Use a database helper class to query data from SQLite and populate the ListView:
// Assuming you have a DatabaseHelper class DatabaseHelper dbHelper = new DatabaseHelper(this); List<String> data = dbHelper.getData(); // Fetch data from SQLite ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter);
Filtering data in ListView in Android using Java:
Implement Filterable
in your custom adapter and override getFilter
to enable filtering:
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter); adapter.getFilter().filter("FilterText");
Sorting ListView in Android with Java:
Sort your data before setting it to the adapter:
Arrays.sort(data); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data); listView.setAdapter(adapter);