스피너는 값 집합에서 하나의 값을 선택할 수 있는 빠른 방법을 제공합니다. 기본값 스피너에 현재 선택된 값이 표시됩니다. 스피너 탭하기 사용자가 선택할 수 있는 다른 모든 값을 보여주는 메뉴를 표시합니다.
![](https://developer.android.com/static/images/ui/spinner.png?authuser=0000&hl=ko)
다음과 같이 레이아웃에 스피너를 추가할 수 있습니다.
Spinner
객체를 만들 수 있습니다. 이 작업은 일반적으로 XML 레이아웃에서
<Spinner>
요소 이 내용은 다음에 나와 있습니다.
예:
<Spinner android:id="@+id/planets_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" />
스피너를 선택 목록으로 채우려면
SpinnerAdapter
내
Activity
또는
<ph type="x-smartling-placeholder">Fragment
</ph>
소스 코드
Material Design 구성요소를 사용하는 경우
노출
드롭다운 메뉴는 Spinner
와 같습니다.
사용자가 선택할 수 있는 스피너 채우기
스피너에 대해 제공하는 선택은 모든 소스에서 가져올 수 있지만
다음과 같은 SpinnerAdapter
를 통해 제공해야 합니다.
ArrayAdapter
선택 항목이 배열 또는
<ph type="x-smartling-placeholder">CursorAdapter
</ph>
선택 항목을 사용할 수 있는지
확인할 수 있습니다
예를 들어 스피너에 사용할 수 있는 선택 항목이 미리 결정되어 있다면 에 정의된 문자열 배열을 제공하여 문자열 리소스 파일에 저장합니다.
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="planets_array"> <item>Mercury</item> <item>Venus</item> <item>Earth</item> <item>Mars</item> <item>Jupiter</item> <item>Saturn</item> <item>Uranus</item> <item>Neptune</item> </string-array> </resources>
이와 같은 배열을 사용하면
Activity
또는 Fragment
는 스피너에
ArrayAdapter
의 인스턴스를 사용하여 배열됩니다.
Kotlin
val spinner: Spinner = findViewById(R.id.planets_spinner) // Create an ArrayAdapter using the string array and a default spinner layout. ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item ).also { adapter -> // Specify the layout to use when the list of choices appears. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) // Apply the adapter to the spinner. spinner.adapter = adapter }
자바
Spinner spinner = (Spinner) findViewById(R.id.planets_spinner); // Create an ArrayAdapter using the string array and a default spinner layout. ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource( this, R.array.planets_array, android.R.layout.simple_spinner_item ); // Specify the layout to use when the list of choices appears. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); // Apply the adapter to the spinner. spinner.setAdapter(adapter);
이
createFromResource()
메서드를 사용하면 문자열 배열에서 ArrayAdapter
를 만들 수 있습니다. 이
이 메서드의 세 번째 인수는
스피너 컨트롤에 표시됩니다. 이 플랫폼은
simple_spinner_item
있습니다. 이 레이아웃은 기본 레이아웃으로,
확인할 수 있습니다.
전화걸기
setDropDownViewResource(int)
를 사용하여 어댑터가 스피너 선택 항목 목록을 표시하는 데 사용하는 레이아웃을 지정합니다.
simple_spinner_dropdown_item
플랫폼에서 정의한 또 다른 표준 레이아웃입니다.
전화걸기
setAdapter()
Spinner
에 어댑터를 적용합니다.
사용자 선택에 응답
사용자가 스피너의 메뉴에서 항목을 선택하면
객체 Spinner
개
항목 선택 이벤트를 수신합니다.
스피너의 선택 이벤트 핸들러를 정의하려면
AdapterView.OnItemSelectedListener
드림
해당하는
onItemSelected()
콜백 메서드를 호출합니다. 예를 들어 다음은
Activity
:
Kotlin
class SpinnerActivity : Activity(), AdapterView.OnItemSelectedListener { ... override fun onItemSelected(parent: AdapterView<*>, view: View?, pos: Int, id: Long) { // An item is selected. You can retrieve the selected item using // parent.getItemAtPosition(pos). } override fun onNothingSelected(parent: AdapterView<*>) { // Another interface callback. } }
자바
public class SpinnerActivity extends Activity implements OnItemSelectedListener { ... public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { // An item is selected. You can retrieve the selected item using // parent.getItemAtPosition(pos). } public void onNothingSelected(AdapterView<?> parent) { // Another interface callback. } }
이
AdapterView.OnItemSelectedListener
인터페이스에는 다음이 필요합니다.
onItemSelected()
및
<ph type="x-smartling-placeholder">onNothingSelected()
</ph>
콜백 메서드를 지원합니다.
다음을 호출하여 인터페이스 구현을 지정합니다.
setOnItemSelectedListener()
:
Kotlin
val spinner: Spinner = findViewById(R.id.planets_spinner) spinner.onItemSelectedListener = this
자바
Spinner spinner = (Spinner) findViewById(R.id.planets_spinner); spinner.setOnItemSelectedListener(this);
AdapterView.OnItemSelectedListener
를 구현하는 경우
다음과 같이 Activity
또는 Fragment
인터페이스를 사용합니다.
이전 예에서 this
를 인터페이스 인스턴스로 전달할 수 있습니다.