0
0
Android-kotlinHow-ToBeginner ยท 3 min read

How to Use Spinner in Android: Simple Guide with Example

In Android, use the Spinner widget to create a dropdown list for user selection. You set an ArrayAdapter to provide the list items and handle user selection with OnItemSelectedListener.
๐Ÿ“

Syntax

The Spinner widget displays a dropdown list. You create it in XML or code, then set an ArrayAdapter to supply the items. Use setOnItemSelectedListener to respond when the user picks an item.

  • Spinner: The dropdown UI element.
  • ArrayAdapter: Connects data (like a string array) to the Spinner.
  • OnItemSelectedListener: Listens for user selection events.
java
<Spinner
    android:id="@+id/spinner"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, dataArray);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        // Handle selection
    }
    @Override
    public void onNothingSelected(AdapterView<?> parent) {
        // Handle no selection
    }
});
๐Ÿ’ป

Example

This example shows a Spinner with a list of colors. When the user selects a color, a message appears showing the chosen item.

java
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Spinner spinner = findViewById(R.id.spinner);
        String[] colors = {"Red", "Green", "Blue", "Yellow"};

        ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, colors);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String selected = (String) parent.getItemAtPosition(position);
                Toast.makeText(MainActivity.this, "Selected: " + selected, Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // No action needed
            }
        });
    }
}
Output
A dropdown spinner appears with options: Red, Green, Blue, Yellow. Selecting an option shows a short popup message with the selected color.
โš ๏ธ

Common Pitfalls

Common mistakes when using Spinner include:

  • Not setting an adapter, so the Spinner shows no items.
  • Using the wrong layout for the adapter, causing UI issues.
  • Not handling onNothingSelected, which can cause unexpected behavior.
  • Forgetting to call setDropDownViewResource on the adapter, which affects dropdown item appearance.
java
/* Wrong: Missing setDropDownViewResource causes dropdown items to look bad */
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, dataArray);
spinner.setAdapter(adapter); // Dropdown items may not display properly

/* Right: Set dropdown view resource for proper dropdown item layout */
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
๐Ÿ“Š

Quick Reference

Tips for using Spinner:

  • Always set an ArrayAdapter with setDropDownViewResource.
  • Use OnItemSelectedListener to react to user choices.
  • Define Spinner in XML for easy layout management.
  • Test on different screen sizes for good dropdown display.
โœ…

Key Takeaways

Use Spinner with ArrayAdapter to show dropdown lists in Android.
Always call setDropDownViewResource on the adapter for proper dropdown styling.
Handle user selection with OnItemSelectedListener to respond to choices.
Define Spinner in XML and connect it in code for clean UI setup.
Test Spinner behavior on different devices to ensure usability.