Beginner
    AJAX
    Android
    ASP.Net
    C#
    Cloud Computing
    Crystal Report
    Database
    Drupal
    HTML5
    JavaScript
    Joomla
    JQuery
    MVC
    php
    Reporting
    SharePoint
    SQL Server
    VB.Net
    Windows Phone
    WordPress
    WPF
Follow Us
Follow _MindStick_ on Twitter View MindStick Software's LinkedIn profile View MindStick Software's Facebook profile
Top Contributor
Advertisement
Advertise with Us
Mindstick
Article Article  Forum Forum  Blog Blog  Quiz Quiz  Beginner Beginner  Careers Careers  Contact Contact  Login Login  
Home | Product | Services | About Us | Interview | DeveloperSection | Submit an Article | Submit Blog

Home >> Android >> Using ListView in Android Application




Using ListView in Android Application - MindStick

Using ListView in Android Application

Android provides the view ListView which is capable of displaying a scrollable list of items. ListView gets the data to display via an adapter. An adapter which must extend BaseAdapter and is responsible for providing the data model for the list and for converting the data into the fields of the list.

We can extend the activity ListActivity which simplifies the handling of a ListView. ListActivity extends Activity and provides simplified handling of lists. For example you have a predefine method if someone clicks on a list element.

ListActivity contains a ListAdapter which is responsible for managing the data. This adapter must be set in the onCreate() method of your Activity via the method setListAdapter().

If the user select in the list a list entry the method onListItemClick() will be called. This method allows accessing the selected element.

In this article, I am going create a scrollable list of student names that are read from a string array. When a list item is selected, a toast message will display the name of the item in the list.

Create a project

         Start a new project named ListViewDemo.

         Open the main.xml file inside the res/layout/. Insert the following:

<?xml version="1.0" encoding="utf-8"?>

<TextView xmlns:android="http://schemas.android.com/apk/res/android"   

                android:layout_width="fill_parent"   

                android:layout_height="fill_parent"   

                android:padding="10dp"

                android:textSize="16sp">

</TextView>

This file defines the layout for each item that will be placed in the ListView.

         Open the strings.xml file inside the res/values/. Insert the following:

<?xml version="1.0" encoding="utf-8"?>

<resources>

    <string name="hello">Hello World, ListViewDemoActivity!</string>

    <string name="app_name">ListViewDemo</string>

    <string-array name="students_name">       

       <item>Rohit</item>       

       <item>Rati</item>       

       <item>Amit</item>       

       <item>Arun</item>

       <item>Sapna</item>       

       <item>Sounak</item>    

       <item>Anil</item>

       <item>Kashif</item>

    </string-array>

</resources>

 

         Open the ListViewDemoActivity.java and make the class extend ListActivity instead of Activity. Insert the following code:

import android.app.ListActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;

 

public class ListViewDemoActivity extends ListActivity {

 

    @Override

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        String[] students = getResources().getStringArray(R.array.students_name);

        setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,students));

    }

    /** Called when the listview item is selected. */

    protected void onListItemClick(ListView l,View v,int position,long id)

    {

       Object o = this.getListAdapter().getItem(position);

       String keyword = o.toString();

       Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_LONG).show();

    }

}

The setListAdapter(ListAdapter) automatically adds a ListView to fill the entire screen of the ListActivity. This method takes an ArrayAdapter, which manages the array of list items that will be placed into the ListView.

The onListItemClick(ListView, View, int, long) called when user select any item from the ListView and displays the selected item name.

         Run the application.

         You can scroll the list, then click an item to see a message. You should see something like this:

 

Using ListView in Android Application


After creating ListView with simple layout, create a ListView with its own layout:
Create the following layout file "mylayout.xml" in the res/layout folder of your project:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

       android:layout_width="wrap_content" android:layout_height="wrap_content">

       <ImageView android:id="@+id/icon" android:layout_height="wrap_content"

              android:src="@drawable/icon" android:layout_width="22px"

              android:layout_marginTop="4px" android:layout_marginRight="4px"

              android:layout_marginLeft="4px">

       </ImageView>

       <TextView android:text="@+id/TextView01" android:layout_width="wrap_content"

              android:layout_height="wrap_content" android:id="@+id/label"

              android:layout_marginTop="20px"

              android:layout_marginLeft="4px"

              android:textSize="30px">

       </TextView></LinearLayout>

Change your activity "ListViewDemoActivity" to the following. This is almost the same coding as in the previous example, the only difference is that we are using our own layout in the ArrayAdapter and telling the adapter which UI element should contain the text.

import android.app.ListActivity;

import android.os.Bundle;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

import android.widget.Toast;

 

public class ListViewDemoActivity extends ListActivity {

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        String[] students = getResources().getStringArray(R.array.students_name);

        setListAdapter(new
                ArrayAdapter<String>(
this,R.layout.mylayout,R.id.label,students));

    }

    protected void onListItemClick(ListView l,View v,int position,long id)

    {

       Object o = this.getListAdapter().getItem(position);

       String keyword = o.toString();

       Toast.makeText(this, "You selected: " + keyword, Toast.LENGTH_LONG).show();

    }

}

 

Now the output looks like below:

Using ListView in Android Application



 Author Information
Name: Rohit Kesharwani
Member Since: 8/8/2011
Article Submitted Date: 10/19/2011
Location:     India
Report Abuse Form
Reason:    
 
Total Online Users: 7334
Advertisement
mindstick
Advertise with Us
  
Dudelabs
Copyright © 2013MindStick. All Rights Reserved.