Android List View
Android List View
Android ListView is a view which groups several items and display them
in vertical scrollable list. The list items are automatically inserted to the
list using an Adapter that pulls content from a source such as an array or
database.
List View
An adapter actually bridges between UI components and the data source that fill
data into UI Component. Adapter holds the data and send the data to adapter view,
the view can takes the data from adapter view and shows the data on different views
like as spinner, list view, grid view etc.
The ListView and GridView are subclasses of AdapterView and they can be
populated by binding them to an Adapter, which retrieves data from an external
source and creates a View that represents each data entry.
Android provides several subclasses of Adapter that are useful for retrieving different
kinds of data and building views for an AdapterView ( i.e. ListView or GridView). The
common adapters are ArrayAdapter,Base Adapter, CursorAdapter,
SimpleCursorAdapter,SpinnerAdapter and WrapperListAdapter. We will see
separate examples for both the adapters.
ListView Attributes
Following are the important attributes specific to GridView −
ArrayAdapter
You can use this adapter when your data source is an array. By default, ArrayAdapter
creates a view for each array item by calling toString() on each item and placing the
contents in a TextView. Consider you have an array of strings you want to display
in a ListView, initialize a new ArrayAdapter using a constructor to specify the layout
for each string and the string array −
First argument this is the application context. Most of the case, keep it this.
Second argument will be layout defined in XML file and having TextView for
each string in the array.
Final argument is an array of strings which will be populated in the text view.
Once you have array adapter created, then simply call setAdapter() on your
ListView object as follows −
You will define your list view under res/layout directory in an XML file. For our
example we are going to using activity_main.xml file.
Example
Following is the example which will take you through simple steps to show how to
create your own Android application using ListView. Follow the following steps to
modify the Android application we created in Hello World Example chapter −
package com.example.ListDisplay;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.ListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ListActivity" >
<ListView
android:id="@+id/mobile_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</ListView>
</LinearLayout>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/label"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip"
android:textSize="16dip"
android:textStyle="bold" >
</TextView>
Let's try to run our modified Hello World! application we just modified. I assume
you had created your AVD while doing environment set-up. To run the app from
Android studio, open one of your project's activity files and click Run
icon from the tool bar. Android studio installs the app on your AVD and starts it and if
everything is fine with your set-up and application, it will display following Emulator
window −
SimpleCursorAdapter
You can use this adapter when your data source is a database Cursor. When using
SimpleCursorAdapter, you must specify a layout to use for each row in the Cursor
and which columns in the Cursor should be inserted into which views of the layout.
For example, if you want to create a list of people's names and phone numbers, you
can perform a query that returns a Cursor containing a row for each person and
columns for the names and numbers. You then create a string array specifying which
columns from the Cursor you want in the layout for each result and an integer array
specifying the corresponding views that each column should be placed −
The SimpleCursorAdapter then creates a view for each row in the Cursor using the
provided layout by inserting each from Columns item into the corresponding
toViews view.