본문 바로가기

안드로이드

스피너

반응형

 

 

스피너는 콤보박스로 불리기도 한다

스피너 또는 콤보박스를 누르면 그 아래쪽에 작은 창이 나타나는데, 그 안에 들어있는 여러 데이터 중의 하나를 선택할 수 있도록 되어있다

 

 

activity_main

<?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:id="@+id/textView"
        android:layout_width="wrap_content"
        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>

 

 

 

MainActivity

package com.example.a46_spinner;

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.TextView;

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 - API에서 제공하는 기본 어댑터
//        android.R.layout.simple_spinner_item - 스피너를 간단하게 사용할 수 있도록 API에서 제공하는 레이아웃
//        첫번째 파라미터는 Context 객체이므로 액티비티인 this를 전달
//        두번째 파라미터는 뷰를 초기화할 때 사용되는 xml 레이아웃의 리소스 id 값
//        세 번째 파라미터는 아이템으로 보일 문자열 데이터들의 배열
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);

//        스피너의 각 아이템들을 보여줄 뷰에 사용되는 레이아웃을 지정하는데 사용
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinner.setAdapter(adapter);

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

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

 

 

 

 

반응형

'안드로이드' 카테고리의 다른 글

페이지슬라이딩  (0) 2021.10.27
트윈 애니메이션  (0) 2021.10.26
리사이클러뷰에 리스너 설정  (0) 2021.10.26
리사이클러뷰  (0) 2021.10.26
새로운 레이아웃 만들기, 카드뷰 넣기  (0) 2021.10.26