본문 바로가기
안드로이드 자바

[JAVA][Android] ArrayAdapter를 이용하여 Spinner 구현

by teamnova 2022. 1. 24.
728x90

Spinner는 선택해야 할 내용들을 adapter에 데이터를 담아서 가져온다.

 

1. 스피너에 넣을 ArrayList를 만든다.

       ArrayList<String>  arrayList = new ArrayList<>();
        arrayList.add("가지볶음");
        arrayList.add("닭볶음탕");
        arrayList.add("광어회");
        arrayList.add("후라이드치킨");
        arrayList.add("낫또");
        arrayList.add("청국장");
        arrayList.add("닭가슴살샐러드");

 

2. ArrayAdapter를 만들어 주고, ArrayAdapter에 ArrayList를 넣어줍니다.

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

 

3. spinner를 만들어 주고 spinner에 어뎁터를 연결해 줍니다. 

 Spinner spinner = (Spinner)findViewById(R.id.spinner);
 spinner.setAdapter(arrayAdapter);

4. spinner에 클릭리스너를 달아주고 클릭되었을 때 토스트메시지를 띄워줍니다.

     spinner.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) {
            // 선택되지 않았을 때
        }
        });

 

<전체코드>

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList<String>  arrayList = new ArrayList<>();
        arrayList.add("가지볶음");
        arrayList.add("닭볶음탕");
        arrayList.add("광어회");
        arrayList.add("후라이드치킨");
        arrayList.add("낫또");
        arrayList.add("청국장");
        arrayList.add("닭가슴살샐러드");

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

        Spinner spinner = (Spinner)findViewById(R.id.spinner);
        spinner.setAdapter(arrayAdapter);
        spinner.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) {
            // 선택되지 않았을 때
        }
        });
    }
}

 

 

실행

spinner