반응형

이 게시물은 다음 링크를 참조하여 학습했습니다.

 

[안드로이드] 스피너(Spinner)이용하기 - ArrayList, ArrayAdapter사용.

[안드로이드] 스피너(Spinner)이용하기 - ArrayList, ArrayAdapter사용. 안녕하세요. 오늘 소개해 드릴 내용은 스피너를 사용하는 방법이에요. 스피너의 기본예제들을 찾아보면 대부분 strings.xml을 이용하

bottlecok.tistory.com

 

 

스피너  |  Android 개발자  |  Android Developers

스피너는 값 집합에서 하나의 값을 선택할 수 있는 빠른 방법을 제공합니다. 기본 상태의 스피너는 현재 선택된 값을 표시합니다. 스피너를 터치하면 기타 모든 사용 가능한 값을 포함하는 드롭

developer.android.com

로드맵을 보고 공부 계획을 세웠었는데, 로드맵에 적혀있는 Dynamic User Interface의 마지막인 Spinner이다.

Spinner는 어댑터를 별도로 구현하지 않아도 되서 Recycler VIew, View Pager보다는 비교적 난이도가 쉬웠다.

activity_main.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:gravity="center_horizontal"
    android:orientation="vertical">
 
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="SPINNER EXAMPLE"
        android:textSize="30dp"/>
 
        <Spinner
            android:id="@+id/sp"
            android:layout_width="200dp"
            android:layout_height="wrap_content"/>
 
</LinearLayout>
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
35
36
37
38
39
40
41
42
43
44
package com.example.spinnerexample;
 
import androidx.appcompat.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 {
 
    private Spinner spinner;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        spItem sp = new spItem();
        sp.addStr("사과");
        sp.addStr("딸기");
        sp.addStr("바나나");
        sp.addStr("수박");
        sp.addStr("포도");
 
        ArrayAdapter<String> arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item,sp.getStr());
        spinner = (Spinner)findViewById(R.id.sp);
        spinner.setAdapter(arrayAdapter);
 
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                //Toast.makeText(getApplicationContext(), sp.getStr().get(position) +"이 선택되었습니다.",Toast.LENGTH_SHORT).show();
            }
 
            @Override
            public void onNothingSelected(AdapterView<?> parent) {
 
            }
        });
    }
}
cs

spItem.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.example.spinnerexample;
 
import java.util.ArrayList;
 
public class spItem {
    private ArrayList<String> str = new ArrayList<>();
 
    public ArrayList<String> getStr() {
        return str;
    }
 
    public void setStr(ArrayList<String> str) {
        this.str = str;
    }
 
    public void addStr(String text){
        str.add(text);
    }
}
 
cs
 

spItem이라는 ArrayList를 관리하는 클래스를 하나 만들어서 데이터를 관리했다.

또한 배열 자료형을 사용했기 때문에 ArrayAdapter를 이용해서 Spinner를 구현했다.

Toast메세지를 출력해보려 했으나, 어떤 이유인지 메세지가 출력되지 않았다....

Toast는 다음에 배울 때 제대로 정리해야겠다.

Spinner 초기화면
Spinner Touch
Spinner Select 바나나

반응형

+ Recent posts