7장 - 스피너🔻

모래사우르스
|2025. 1. 14. 20:17

스피너(Spinner) : 여러 아이템 중에서 하나를 선택하는 위젯. 윈도우에서는 콤보박스🔻라고 불림.

 

<스피너 사용하기>

1. activity_main.xml

 

2. MainActivity.java

package com.example.chapter7_5;

public class MainActivity extends AppCompatActivity {
    TextView textView;
    String[] items = { "Amy", "Sheldon", "Penny", "Howard", "Leonard", "Raj"};

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

        textView = findViewById(R.id.textView);

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

        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
                textView.setText(items[i]);
            }

            @Override
            public void onNothingSelected(AdapterView<?> adapterView) {
                textView.setText("");
            }
        });
    }
}

    
   ArrayAdapter : 배열로 된 데이터를 아이템으로 추가➕할 때 사용함. (API에서 제공하는 기본 어댑터 중의 하나다.)

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);

        <<두번째 파라미터>>는 뷰를 초기화할 때 사용되는 XML 레이아웃의 리소스 ID 값이다.

        simple_spinner_item : 스피너를 간단하게 사용할 수 있도록 API에서 제공하는 레이아웃.
                                            문자열을 아이템🎁으로 보여주는 단순 스피너 아이템의 레이아웃이다.

        <<세번째 파라미터는>> 아이템으로 보일 문자열 데이터들의 배열이다. (items)

 

 

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

      setDropDownViewResource() : 스피너의 각 아이템들을 보여줄 뷰에 사용되는 레이아웃🌈을 지정하는데 사용됨.
      android.R.layout.simple_spinner_dropdown_item : 이걸로 설정하면 가장 단순한 형태의 뷰로 보임.

 

 

spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){

      setOnItemSelectedListener : 스피너 객체가 아이템 선택✅ 이벤트를 처리할 수 있도록 사용하는 리스너이다.

                                                     (setOnItemClickListener랑 비슷한 느낌인데 뭐가 다른건지 뭔가 알듯말듯..)

 

 

3. 실행 결과

 

스피너로 선택한 텍스트값이 텍스트뷰에 나타난다.