프로그래밍(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 |
피드백은 언제나 환영입니다.
반응형