Factory method to create Immutable List in android?


This example demonstrate about Factory method to create Immutable List in android.

Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.

Step 2 − Add the following code to res/layout/activity_main.xml.

<?xml version="1.0" encoding="utf-8"?>
<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"
   android:gravity="center_horizontal"
   android:layout_marginTop="100dp"
   tools:context=".MainActivity">
   <ListView
      android:id="@+id/list"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
   </ListView>
</LinearLayout>

In the above code, we have taken listview to add immutable list.

Step 3 − Add the following code to src/MainActivity.java

package com.example.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class MainActivity extends AppCompatActivity {
   ListView list;
   String[] mobileArray = {"Android","IPhone","WindowsMobile","Blackberry", "WebOS","Ubuntu","Windows7","Max OS X"};
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      list = findViewById(R.id.list);
      List<String> list1 = new ArrayList<>(Arrays.asList(mobileArray));
      List<String> readOnlylist = Collections.unmodifiableList(list1);
      String[] array = new String[readOnlylist.size()];
      ArrayAdapter adapter = new ArrayAdapter<String>(this,
      android.R.layout.simple_list_item_1, readOnlylist.toArray(array));
      list.setAdapter(adapter);
   }
}

Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click Run  icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen –

Click here to download the project code

Arushi
Arushi

e

Updated on: 26-Jun-2020

122 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements