이 튜토리얼에서는 안드로이드 앱에서 스피너(Spinner)의 선택 값을 가져오는 방법을 단계별로 살펴봅니다. 스피너는 사용자가 목록에서 하나의 항목을 선택할 수 있도록 하는 드롭다운 위젯으로, 설정 화면이나 카테고리 선택 등 다양한 상황에서 자주 사용됩니다.
구현 개요
전체 흐름은 다음과 같습니다. 먼저 XML 레이아웃에 스피너를 배치하고, strings.xml에 표시할 항목 배열을 정의합니다. 이후 ArrayAdapter로 데이터를 연결하고, OnItemSelectedListener를 통해 사용자가 선택한 항목의 값을 가져옵니다.
1단계 – 새 프로젝트 생성
Android Studio에서 File → New Project를 선택하여 새 프로젝트를 만들고, 필요한 모든 정보를 입력해 프로젝트 생성을 완료합니다.
2단계 – activity_main.xml 작성
res/layout/activity_main.xml 파일에 아래 코드를 추가하여 화면 중앙에 스피너를 배치합니다.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android" xmlns:tools="https://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="16sp" tools:context=".MainActivity"> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true"> </Spinner> </RelativeLayout>
3단계 – strings.xml에 항목 배열 정의
res/values/strings.xml 파일을 열어 스피너에 표시할 새 목록(string-array)을 추가합니다. 여기서는 여러 종류의 새 이름을 배열로 정의했습니다.
<resources> <string name="app_name">Sample</string> <string-array name="birds"> <item>crane</item> <item>Cuckoo</item> <item>Pigeon</item> <item>Eagle</item> <item>Owl</item> <item>Vulture</item> <item>WoodPecker</item> </string-array> </resources>
4단계 – MainActivity.java 구현
src/MainActivity.java에 아래 코드를 추가합니다. 핵심은 두 가지입니다. 첫째, ArrayAdapter.createFromResource()로 strings.xml의 배열을 스피너에 연결하고, 둘째, onItemSelected() 콜백에서 getItemAtPosition(position)으로 선택된 항목의 값을 가져오는 것입니다.
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.Spinner;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {
Spinner spinner;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.birds,
android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String text = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), text, Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> parent) { }
}5단계 – AndroidManifest.xml 확인
androidManifest.xml에 아래 코드가 올바르게 설정되어 있는지 확인합니다. 메인 액티비티가 LAUNCHER 인텐트 필터를 가지고 있어야 앱 실행 시 해당 화면이 열립니다.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
앱 실행 및 결과 확인
이제 애플리케이션을 실행해 보겠습니다. 실제 안드로이드 기기를 컴퓨터에 연결했다고 가정합니다. Android Studio에서 프로젝트의 액티비티 파일 중 하나를 열고 툴바의 Run(실행) 아이콘을 클릭하세요. 옵션 목록에서 본인의 모바일 기기를 선택하면, 기본 화면이 기기에 표시됩니다.

스피너를 탭하면 항목 목록이 나타나고, 항목을 선택할 때마다 Toast 메시지로 선택된 값이 화면 하단에 잠깐 표시됩니다. 이처럼 onItemSelected() 콜백의 position 값을 활용하면 선택된 항목의 문자열을 손쉽게 가져올 수 있습니다.