How to Add a Dropdown Menu in Android Studio

A dropdown or pull-down menu, also known as spinner, is one of the most essential UI elements for an app. In this tutorial I’ll tell you how to add one to your Android app using Java.

Dropdown menus organize an app and improve user experience. Almost every app has a dropdown menu integrated into its user interface.

If you are a fresh developer making your initial apps on Android Studio, this tutorial is for you.

Even though adding a dropdown menu in your Android app is as simple as dragging and dropping it, it sure can get tricky especially if you are new to using Android Studio.

Setting Up the Environment

Once you have created a project on Android studio, open these files:

  • res/layout/activity_main.xml
  • res/values/strings.xml
  • app/java/your.project.name/MainActivity.java

(The file MainActivity.java is opened by default when you create the project.)

With all the files open, your IDE should look like this:

IDE with code resource and layoutIDE with code resource and layoutIDE with code resource and layout

Adding the Dropdown Menu Layout

Now, it is time to add the dropdown menu layout. In Android Studio, the layouts are added to the layout XML files. For that, head over to activity_main.xml. While you’re in the activity_main.xml file, open the Design tab. You’ll find it in the upper right corner of your IDE.

Design tab in XMLDesign tab in XMLDesign tab in XML

Android pull down menus in Android Studio are added using Spinners.

If there is default text present on your application screen, head back to the code section and remove all the TextViews.

Now, from the design palette, select Containers. You’ll find Spinner there.

Please note here that we are using Android Studio 4.2.2. In the older versions of Android Studio Spinner might be located under the widgets’ section. In case you are unable to find it, you can simply click on the search icon and search for Spinner.
SpinnerSpinnerSpinner

Once you’ve located the Spinner, drag and drop it on top of your mobile application. Android Studio will do the relevant coding for you and you can later check it out by getting back to the code screen.

Depending on where you’ve dropped your Spinner, the layout code should look something like this:

However, Android Studio allows you to customize your dropdown menu by changing its height, width, and margins through the attributes panel without having to code all of it from scratch.

While you’re at it, make sure that spinnerMode is set to dropdown to create a dropdown menu. You’ll find this setting in the attributes panel.

Positioning the dropdown menu on your application screen is quite easy. The Android Studio GUI will provide you with all the constraints to let you specify where your dropdown menu sits.

Once you’re satisfied with the styling of your dropdown menu, switch to the code view and edit the Spinner id, this will be required later on when we integrate the Spinner into the Java file.

The Spinner id is found in the first line of the <Spinner> tag. Give this an id that you’ll remember for use elsewhere in your app code.

Spinner idSpinner idSpinner id

Lastly, head back to the design section and press the Infer Constraints button—which I personally call the “magic button”—on the top to take care of all the missing constraints in our code:

Infer Constraints ButtonInfer Constraints ButtonInfer Constraints Button

Adding Elements to the Dropdown Menu

Now that you’ve added a dropdown menu to your screen, it’s time to populate it with a bunch of choices for the user to choose from.

For this, you need to open up the strings.xml file. This file will be empty initially and it should look something like this:

strings.xml filestrings.xml filestrings.xml file

To add elements to your Android dropdown menu, you need to declare a string array and give it a name. Declare a string-array underneath the already declared string using the following syntax:

The string array has to be declared within the resources tag. Otherwise, you will be get a Syntax error. The string array can be declared within the main Java file as well but putting it in a separate XML file increases the reusability of the code and enhances the efficiency of your application. There’s no limit to the number of items that you can have in your dropdown menu.

Calling the Spinner in the Java file

Before we begin with the coding, have the following classes imported into your code:

It’s best that these classes are imported beforehand to avoid any syntax errors later on. However, if you still get a Syntax error, you can always hover your mouse over it and then press Alt + Enter to import the relevant class for your code. 

To pass the Android dropdown menu to Java, you have to define a Spinner object. Use the Spinner class name and give the object an appropriate name. Next, instantiate the spinner by looking it up with the same id you declared in the activity_main.xml file:

Now in the next step, you’ll have to create an ArrayAdapter. The ArrayAdapter will be responsible for rendering every item in the languages string array to the screen when the Java dropdown menu is accessed.

createFromResources() is a built-in method for the ArrayAdapter class which takes three input parameters:

  • the environment of the application. Within an Activity you can just use this.
  • the name of the StringArray that you declared in the strings.xml file
  • the layout type

For this particular example we’re using a basic spinner layout.   

The adapter that we declared above is useless unless it is attached to our dropdown menu (spinner). Therefore, set the spinner to use that adapter.

With the ArrayAdapter declared and successfully bound to the spinner, you’ve successfully integrated your very first Android pull-down menu into your application.

You can now run your application on the emulator. It will look something like this:

Dropdown menu view in emulator

With the Java dropdown menu all set, you can now play around with it a little in the activity_main.xml file. Try altering the height attribute and see how the dropdown menu moves across the screen.

Summary

A dropdown menu can be added to your Android application in a few simple steps.

For starters, you need to edit the XML files. Integrate the dropdown menu into them using Android Studio’s drag and drop feature. Next, you have to create a string array to add all the relevant items to your dropdown menu. Then, you need to get the Spinner instance in the main Java file along with an ArrayAdapter. Lastly, you set your spinner up to use that adapter.

With all three code files working simultaneously, you’ll have an Android dropdown menu working functional on your first Android app.