<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/selection"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true" />
</LinearLayout>
package com.commonsware.android.selection7;
import android.app.Activity;
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 SpinnerDemo extends Activity implements
AdapterView.OnItemSelectedListener {
//이벤트 리스너
TextView selection;
String[] items = { "lorem", "ipsum", "dolor", "sit", "amet",
"consectueuer", "adipiscing", "elit", "morbi", "vel", "ligula",
"vitae", "arcu", "aliquet", "mollis", "etiam", "vel", "erat",
"placerat", "ante", "porttitor", "길다", "많다", "너무 많다", "너무 길다", };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
selection = (TextView) findViewById(R.id.selection);
//이벤트 소스
Spinner spin = (Spinner) findViewById(R.id.spinner);
//이벤트 소스와 이벤트 리스너가 구현된 객체 연결
spin.setOnItemSelectedListener(this);
//어댑터를 이용해 데이터 셋팅
ArrayAdapter<string> aa = new ArrayAdapter<string>(this,
android.R.layout.simple_spinner_dropdown_item, items);
//드롭다운 화면에 표시할 리소스 지정
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
//ArrayAdapter를 Spinner에 등록
spin.setAdapter(aa);
}
//이벤트 핸들러
//전달된 인자
//AdapterView parent : 이벤트가 발생한 Spinner 객체
//(제네릭 표현을 써야됨 쓰고싶지 않을때,노란줄이 가더라도 안쓰는것이 좋음) = Object
//view v : Spinner 하위 객체의 이벤트가 발생한 객체
//position : 이벤트가 발생한 위치
//id : position = id
public void onItemSelected(AdapterView parent, View v, int position,
long id) {
selection.setText(items[position]);
}
//이벤트 핸들러
public void onNothingSelected(AdapterView parent) {
selection.setText("");
}
}