Spinner - Android Studio - Java

How to use the Spinner in Android Studio with Java

In this tutorial, you’ll learn how to use a Spinner in Android Studio using Java. A Spinner in Android works like a drop-down menu that displays a list of values, allowing the user to select one option at a time.

The Android Spinner is part of the AdapterView family, which means it requires an Adapter to bind data to the UI. In this example, we’ll use an adapter to populate the Spinner with items and handle user selection events.

Code:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    android:orientation="vertical"
    android:padding="10dp"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginVertical="40dp"
        android:text="Spinner"
        android:textAlignment="center"
        android:textSize="20sp"
        android:textStyle="bold" />

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/outputSpinnerTv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textColor="#000"
        android:textSize="30sp" />

</LinearLayout>

MainActivity.java

package com.technifysoft.myapplication;

import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;


public class MainActivity extends AppCompatActivity {

    Spinner mSpinner;
    TextView mOutputSpinnerTv;
    //options to be displayed in spinner
    String[] mOptions = {"Canada", "Pakistan", "Turkey", "US"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //init UI views
        mSpinner = findViewById(R.id.spinner);
        mOutputSpinnerTv = findViewById(R.id.outputSpinnerTv);

        //Creating the ArrayAdapter instance having the list of options
        ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, mOptions);
        arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        //setting the ArrayAdapter data on the Spinner
        mSpinner.setAdapter(arrayAdapter);

        //spinner item click handler
        mSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                //METHOD 1: Get text from selected item's position & set it to TextView
                //mOutputSpinnerTv.setText(parent.getItemAtPosition(position).toString());

                //METHOD 2: Get the position of item selected, & perform specific task
                if (position == 0) {
                    mOutputSpinnerTv.setText("Canada is selected...");
                } else if (position == 1) {
                    mOutputSpinnerTv.setText("Pakistan is selected...");
                } else if (position == 2) {
                    mOutputSpinnerTv.setText("Turkey is selected...");
                } else if (position == 3) {
                    mOutputSpinnerTv.setText("US is selected...");
                }

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }

        });

    }

}

Screenshots:



Comments

Popular posts from this blog

Manage External Storage Permission - Android Studio - Kotlin

Picture In Picture - Android Studio - Kotlin

SeekBar with Customization | Android Studio | Java