Android ListView is a view which contains the group of items and displays in a scrollable list. ListView is implemented by importing android.widget.ListView class. ListView is a default scrollable which does not use other scroll view.

ListView uses Adapter classes which add the content from data source (such as string array, array, database etc) to ListView. Adapter bridges data between an AdapterViews and other Views (ListView, ScrollView etc).

Example of ListView

Let’s implement a simple listview example.

Structure of listview project

android Listview 1

activity_main.xml

First we need to drag and drop ListView component from palette to activity_main.xml file.

File: activity_main.xml

<?xml version=“1.0” encoding=“utf-8”?>
<android.support.constraint.ConstraintLayout xmlns:android=“http://schemas.android.com/apk/res/android”
    xmlns:app=“http://schemas.android.com/apk/res-auto”
    xmlns:tools=“http://schemas.android.com/tools”
    android:layout_width=“match_parent”
    android:layout_height=“match_parent”
    tools:context=“listview.example.com.listview.MainActivity”>
    <ListView
        android:id=“@+id/listView”
        android:layout_width=“match_parent”
        android:layout_height=“fill_parent”
         />
</android.support.constraint.ConstraintLayout>

Create an additional mylist.xml file in layout folder which contains view components displayed in listview.

mylist.xml

File: mylist.xml

<?xml version=“1.0” encoding=“utf-8”?>
<TextView xmlns:android=“http://schemas.android.com/apk/res/android”
    android:id=“@+id/textView”
    android:layout_width=“wrap_content”
    android:layout_height=“wrap_content”
    android:text=“Medium Text”
    android:textStyle=“bold”
    android:textAppearance=“?android:attr/textAppearanceMedium”
    android:layout_marginLeft=“10dp”
    android:layout_marginTop=“5dp”
    android:padding=“2dp”
    android:textColor=“#4d4d4d”
     />

Now place the list of data in strings.xml file by creating string-array.

strings.xml

File:strings.xml

<resources>
    <string name=“app_name”>ListView</string>
    <string-array name=“array_technology”>
        <item>Android</item>
        <item>Java</item>
        <item>Php</item>
        <item>Hadoop</item>
        <item>Sap</item>
        <item>Python</item>
        <item>Ajax</item>
        <item>C++</item>
        <item>Ruby</item>
       <item>Rails</item>
        <item>.Net</item>
        <item>Perl</item>
    </string-array>
</resources>

Activity class

In java class we need to add adapter to listview using setAdapter() method of listview.

File: MainActivity.java

package listview.example.com.listview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
    ListView listView;
    TextView textView;
    String[] listItem;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=(ListView)findViewById(R.id.listView);
        textView=(TextView)findViewById(R.id.textView);
        listItem = getResources().getStringArray(R.array.array_technology);
        final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, android.R.id.text1, listItem);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
                // TODO Auto-generated method stub
                String value=adapter.getItem(position);
                Toast.makeText(getApplicationContext(),value,Toast.LENGTH_SHORT).show();

 

}

});

}

}

Output

android Listview 2
android Listview 3