티스토리 뷰
스피너는 HTML selector와 비슷한 기능으로 콤보 박스 안에 데이터를 하나 선택할 수 있도록 하는 위젯이다.
레이아웃 파일에 spinner 태그를 추가하여 간단하게 사용할 수 있다.
◎activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" android:orientation="vertical">
<TextView
android:text="선택한 아이템"
android:textSize="30sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/textView"/>
<Spinner
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/spinner"/>
</LinearLayout>
◎MainActivity.java
package com.example.samplespinner;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
TextView textView;
String[] items = {"111", "222", "333", "444", "555", "666"};
@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);
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("");
}
});
}
}
코드를 보면, 스피너 객체도 선택 위젯이기 때문에 setAdapter메서드의 파라미터로 어댑터 객체를 전달해야 한다.
하지만 스피너 객체는 API에서 제공하는 ArrayAdapter 를 사용하여 배열로 된 데이터를 아이템으로 추가할 수 있다.
ArrayAdapter의 생성자 메서드는 첫 파라미터로 Context 를 받고, 두번째 파라미터로는 뷰 객체를 초기화할 때 사용하는 xml 레이아웃의 리소스 ID값이며, 세번째로는 아이템으로 보일 데이터의 배열을 전달한다.
'Mobile > Android' 카테고리의 다른 글
[Android] Runnable (0) | 2022.04.06 |
---|---|
[Android] Thread & Handler (0) | 2022.04.05 |
[Android] 선택 위젯 3: Recycler View (0) | 2022.04.03 |
[Android] 선택 위젯 2: CardView (0) | 2022.04.02 |
[Android] 선택 위젯 1: 새로운 뷰 객체 생성 (0) | 2022.04.02 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- redux
- 정보보안기사 #실기 #정리
- redux-thunk
- 맛집
- AsyncStorage
- 인천 구월동 맛집
- 파니노구스토
- javascript
- Promise
- 이탈리안 레스토랑
- await
- Async
- 인천 구월동 이탈리안 맛집
- react-native
- react
- Total
- Today
- Yesterday