본문 바로가기
IT 개발/안드로이드개발

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

by 만능이되고픈 잡캐 2018. 10. 19.


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




안녕하세요. 오늘 소개해 드릴 내용은 스피너를 사용하는 방법이에요.
스피너의 기본예제들을 찾아보면 대부분 strings.xml을 이용하는 방식만
포스팅 되어있을거에요ㅠㅠ.. 그래서 ArrayList를 이용하는 방법을 알려드리려고 해요.
ArrayAdapter를 이용하여 Spinner를 구현하는 방법을 알아보도록 하죠.




Spinner는 기본적으로 자신이 담아야할 내용들을 adapter를 통해 가져오게 되요.

쉽게말해, 스피너는 껍데기일뿐 adapter에 데이터들을 담아서 가져온다고 생각하시면 되요.



1. 먼저, 스피너에 넣을 ArrayList를 만들어줄게요.

        ArrayList arrayList = new ArrayList<>();
        arrayList.add("철수");
        arrayList.add("영희");
        arrayList.add("람휘");
        arrayList.add("녹지");
        arrayList.add("치치");
        arrayList.add("양가");
        arrayList.add("용병");


2. 그리고 스피너를 선언해주도록 할게요.

spinner2 = (Spinner)findViewById(R.id.spinner2);


3. ArrayAdapter에 ArrayList를 넣어줄게요.

arrayAdapter = new ArrayAdapter<>(getApplicationContext(),android.R.layout.simple_spinner_dropdown_item,arrayList);


4. 마지막으로 스피너에 .setAdapter()를 이용하여 adapter를 넣어주시면 끝!

spinner2.setAdapter(arrayAdapter);



전체소스입니다.


[MainActivity.java]

public class MainActivity extends AppCompatActivity {

    private Spinner spinner2;
    ArrayList<String> arrayList;
    ArrayAdapter<String> arrayAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_spinner);

        arrayList = new ArrayList<>();
        arrayList.add("철수");
        arrayList.add("영희");
        arrayList.add("람휘");
        arrayList.add("녹지");
        arrayList.add("치치");
        arrayList.add("양가");
        arrayList.add("용병");
        
        arrayAdapter = new ArrayAdapter<>(getApplicationContext(),
                android.R.layout.simple_spinner_dropdown_item,
                arrayList);
        
        spinner2 = (Spinner)findViewById(R.id.spinner2);
        spinner2.setAdapter(arrayAdapter);
        spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(getApplicationContext(),arrayList.get(i)+"가 선택되었습니다.",
                        Toast.LENGTH_SHORT).show();
            }
            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
            }
        });
    }
}



[activity_main.xml]

<?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"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:text="SpinnerActivity"
        android:textSize="40sp"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="30dp"/>
    <Spinner
        android:id="@+id/spinner2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"></Spinner>
</LinearLayout>



5.구현사진