iOS를 사랑하는 AOS 개발자

[Android] 안드로이드 Spinner 선택 값 가져오기 본문

Android ( JAVA )/개발

[Android] 안드로이드 Spinner 선택 값 가져오기

아사안개 2022. 2. 27. 15:29
반응형
SMALL

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 

 

안녕하세요! 🙋🏻‍♀️

2021.12.30 - [Android ( JAVA )/개발] - [Android] 안드로이드 Spinner + 커스텀 (feat.values)

 

[Android] 안드로이드 Spinner + 커스텀 (feat.values)

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 안녕하세요! 인터넷 사용하다 보시면 이렇게 select 할수있는걸 보셨을꺼에요! 안드로이드 위젯에도 이러한

devziner.tistory.com

 

안드로이드 Spinner 의 간단 사용법을 작성해봤었는데,

이번엔 Spinner 의 선택한 값을 가져와서 활용(?) 하는 코드를 짜보려고 해요!!!

 

 

자 이제 코드 짜러 가봅시당🤗

 

반응형
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:orientation="vertical"
    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"
    tools:context=".MainActivity"
    android:padding="20dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="애플 제품 목록"
            android:textSize="20dp"
            android:paddingRight="20dp"
            />

        <Spinner
            android:id="@+id/spinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/border"
            />
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:gravity="center"
        android:layout_marginTop="30dp"
        >
        <ImageView
            android:id="@+id/iv_item"
            android:layout_width="300dp"
            android:layout_height="300dp"
            />
        <TextView
            android:id="@+id/tv_item_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:textSize="30dp"
            android:layout_marginTop="20dp"
            />
    </LinearLayout>
</LinearLayout>

 

이전 발행글에서 <ImageView> 와 <TextView> 만 추가 되었습니다!!!

 

 

MainActivity
public class MainActivity extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

    ImageView iv_item;
    TextView tv_item_name;
    ArrayAdapter<String> adapter = null;
    Spinner spinner = null;

    String[] items = {"상품을 선택해주세요", "아이폰", "에어팟", "아이패드", "애플펜슬", "맥북", "애플워치", "아이맥", "맥미니", "아이팟"};
    int[] itemImgs = {R.drawable.applelogo, R.drawable.iphone13, R.drawable.airpod, R.drawable.ipad,
            R.drawable.applepencil, R.drawable.macbookpro14, R.drawable.applewatch,
            R.drawable.imac, R.drawable.macmini, R.drawable.ipodtouch };

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

        iv_item = findViewById(R.id.iv_item);
        tv_item_name = findViewById(R.id.tv_item_name);

        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, items);
        spinner=findViewById(R.id.spinner);
        spinner.setAdapter(adapter);

        spinner.setOnItemSelectedListener(this);
    }

    @Override
    public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
        iv_item.setImageResource(itemImgs[i]);
        tv_item_name.setText(items[i]);
    }

    @Override
    public void onNothingSelected(AdapterView<?> adapterView) {
        iv_item.setImageResource(itemImgs[0]);
        tv_item_name.setText(items[0]);
    }
}

 

AdapterView.OnItemSelectedListener

이 Listener 를 상속받아

onItemSelected 와 onNothingSelected  메소드를 오버라이드 합니다!

onItemSelected 메소드 안에 선택된 index 값으로 배열에 선언된 index를 불러오게 되는겁니다!!

쏘쏘쏘쏘쏘 간단하쥬?🥴

 

SMALL

틀린부분이 있거나, 궁금하신게 있거나, 그냥 아무말이나 하고싶으면 댓글 남겨주세요 🥴

봐주셔서 감사합니다 🥰

반응형
LIST