프로그래밍(programming)/안드로이드(android)

안드로이드 스피너(Spinner) (210427)

하빌리즘 2021. 4. 27. 14:56
반응형

(210518 수정)

 

앱을 사용하다보면 옵션을 선택하는 경우를 종종 볼 수가 있다.

안드로이드에는 많은 메뉴 기능이 있지만 이번에 우리가 알아볼 기능은

'스피너(Spinner)' 이다.

 

스피너는 우리가 값들을 선택할 수 있는 빠른 방법중에 하나이고

스피너를 누르면 값들이 드롭다운이 되며

값을 선택하면 현재 선택된 값을 표시하게된다.(기본 상태)

 

먼저 스피너 위젯을 레이아웃에 추가를 하고

 

activity_main.xml 에 스피너 위젯 추가

1
2
3
4
<Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
cs

스피너 안에 넣을 값 집합 value/spinner_item.xml 로 만든다.

 

spinner_item.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">스피너 예시</string>
 
<string-array name="spinner_array" >
        <item>선택 안됨</item>
        <item>하빌리즘</item>
        <item>브레이브걸스</item>
        <item>메이플스토리</item>
        <item>서든어택</item>

    </string-array>
</resources>
cs

 

 

이제 스피너와 값 집합을 만들었으니

동작을 구현해보자.

 

MainActivity.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
spinner = (Spinner)findViewById(R.id.spinner);
 
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( // 스피너와 값 집합의 연결을 위한 어레이 어댑터 생성
                this, R.array.spinner_array, android.R.layout.simple_spinner_item); 
        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) {
                if(position == 0) {
                    Toast.makeText(getApplicationContext(), "선택안됨 ", Toast.LENGTH_SHORT).show();
                   
                } else if(position == 1) {
                    Toast.makeText(getApplicationContext(), "하빌리즘 선택 ", Toast.LENGTH_SHORT).show();
                  
                } else if(position == 2) {
                    Toast.makeText(getApplicationContext(), "브레이브걸스 선택", Toast.LENGTH_SHORT).show();
                 
                } else if(position == 3) {
                    Toast.makeText(getApplicationContext(), "메이플스토리 선택 ", Toast.LENGTH_SHORT).show();
               
                } else if(position == 4) {
                    Toast.makeText(getApplicationContext(), "서든어택 선택 ", Toast.LENGTH_SHORT).show();
                
                }
 
            }
 
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
 
            }
        });
 
cs

 

선택 안됨
드롭다운으로 보여주는 값 집합
현재 선택되면 표시해줌

 

피드백은 언제나 환영입니다.

반응형