티스토리 뷰

# 스피너?

 윈도우에서 콤보박스로 불림

스피너 객체도 선택 위젯

: 스피너를 누르면 그 아래쪽에 작은 창이 나타나고 그 안에 들어있는 여러 데이터 중의 하나를 선택할 수 있음

 

# 스피너 구현해보자!

1) 원하는 액티비티 XML 파일에 스피너 추가

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="선택한 아이템"
        android:textSize="30sp" />

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

</LinearLayout>

 

2) 자바소스 파일 수정

// MainActivity.java
public class MainActivity extends AppCompatActivity {
    TextView textView;
    String[] items = {"mike", "angel", "crow", "john", "ginnie", "sally", "cohen", "rice"}; //스피너 아이템으로 보일 문자열 데이터들의 배열

    @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);

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items); //API에서 제공하는 어댑터
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); //스피너 항목을 선택하는 창을 위한 레이아웃 설정
        spinner.setAdapter(adapter); //스피너에 어댑터 설정

        //스피너 아이템이 선택되면 자동 호출
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            //스피너 객체가 아이템 선택 이벤트를 처리할 수 있도록 사용하는 리스너
            public void onItemSelected(AdapterView<?> adapterView, View view, int position, long id) {
                textView.setText(items[position]);
            }

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

* 스피너 커스텀은 리싸이클러뷰와 상당히 유사함으로 해당 포스팅 참고!

 


출처

Do it! 안드로이드 앱 프로그래밍(개정8판)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함