To display element in a list in mobile application common approach uses is ListView.

Today I will demonstrate how we can implement a list view in android. Let's begin

Step 1. Open Android Studio, click on a new project and select an empty layout then enter your project name then hit finish.

Step 2. Now take list view in your main activity layout as bellow

   <ListView
        android:layout_below="@+id/tv_title"
        android:id="@+id/lv_items"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
   </ListView> 

Or you can copy the below code and past on your activity_mail.xml file.

 

xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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=".MainActivity">

    <TextView
        android:id="@+id/tv_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Android List View"
        android:textAlignment="center"
        android:layout_marginBottom="10dp"/>
    <ListView
        android:layout_below="@+id/tv_title"
        android:id="@+id/lv_items"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
   </ ListView>
</RelativeLayout>

Step 3. Now open your MainActivity.java file and initialize an array list of an item which we will show on list view as below.

 ArrayList listItems=new ArrayList<>();

Now add some data to the array list as below.

public void load_items(){
    listItems.add("Andoid");
    listItems.add("Java");
    listItems.add("C");
    listItems.add("C++");
    listItems.add("Nodejs");
    listItems.add("AngularJs");
}

Now simply call the load_items() function on your onCreate method and to bind the data with the view we need an adapter, here we will use an ArrayAdapter as below 

final ArrayAdapter stringArrayAdapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,listItems);
yourlistview.setAdapter(stringArrayAdapter);

If you want to display the items name on click of an item then we can implement the onitemclick method as below

yourlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView parent, View view, int position, long id) {
        Toast.makeText(getApplicationContext(),stringArrayAdapter.getItem(position),Toast.LENGTH_SHORT).show();
    }
});

Any confusion just copy the below code and past on your MainActivity.java class

package com.sahebul.simplelistview;

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.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    ArrayList listItems=new ArrayList<>();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ListView itemListView=(ListView)findViewById(R.id.lv_items);
        //load the item list to display
        load_items();
        //set a string adapter
        final ArrayAdapter stringArrayAdapter=new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,listItems);
        itemListView.setAdapter(stringArrayAdapter);
        //set onclick listener to display the click item name in a toast
        itemListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView parent, View view, int position, long id) {
                Toast.makeText(getApplicationContext(),stringArrayAdapter.getItem(position),Toast.LENGTH_SHORT).show();
            }
        });

    }

    public void load_items(){
        listItems.add("Andoid");
        listItems.add("Java");
        listItems.add("C");
        listItems.add("C++");
        listItems.add("Nodejs");
        listItems.add("AngularJs");
    }
}

 

 

 

0 Comments

Leave a reply

Your email address will be private. Required fields are marked with *

Name *
Email *
Website