Android - spinner ( 스피너 )

Android 2011.10.18 23:58

원하는 항목들을 리스트식으로 보여주는 리스트뷰가 있다면
원하는 항목들을 선택 시 나열하여 선택하는 스피너가 있습니다.
평소에는 닫혀있다가 선택 시 목록들을 보여주는 식이지요.

spinner도 목록을 보여주기 때문에 ArrayAdapter 클래스를 사용하는데요 ArrayAdapter은 이글 전 내용인 리스트뷰를 찾아가시면 설명을 해놓았습니다.
그래서 따로 설명은 안하겠습니다.

spinner를 이용해서 간단한 선택해서 값을 보는 실습을 해보겠습니다.
필요한 내용은 소스코드에서 주석으로 처리 하였습니다.


프로젝트

Project name : ExamCheck
Build Target : Android 2.1
Package name : jsh.exam.check
Create Activity : main
Min SDK Version : 7


src

main.java

package jsh.exam.spinner;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

//스피너의 선택 이벤트를 위해서 OnItemSelectedListener 인터페이스 상속
public class main extends Activity implements OnItemSelectedListener{
    /** Called when the activity is first created. */
 
 //스피너 클릭 시 보여질 문자 배열 할당
 private String[] aa = {"사과","바나나","키위","파인애플","딸기"};
   
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        //xml에 선언한 스피너를 id값으로 불러옴
        Spinner sp1 = (Spinner) findViewById (R.id.spinner1);
       
        //스피너를 선택 시 보여질 팝업의 제목을 지정
        sp1.setPrompt("좋아하는 과일을 선택");
       
       
        //문자열 어댑터 선언
        ArrayAdapter<String> list;
       
        //어댑터 객체를 생성하고 보여질 아이템 리소스와 문자열 지정
        list = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, aa);
       
       
        //스피너에 adapter 연결
        sp1.setAdapter(list);
       
        //스피너가 선택 됫을 때 이벤트 처리
        sp1.setOnItemSelectedListener(this);
       
    }

 @Override
 public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
   long arg3) {
  // TODO Auto-generated method stub
  
  //스피너에 보여지고 있는 값
  TextView tv = (TextView)arg1;
  
  //선택 된 값과 id값을 보기위한 텍스트뷰선언
  TextView bb = (TextView) findViewById (R.id.textView1);
  
  //선택된 값 보기
  bb.setText("해당 문자열 : " + tv.getText() + "\n해당 id값 : " + arg2 );
  
 }

 @Override
 public void onNothingSelected(AdapterView<?> arg0) {
  // TODO Auto-generated method stub
  
 }
}


res

main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="
http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
 <Spinner
  android:layout_height="wrap_content"
  android:id="@+id/spinner1"
  android:layout_width="fill_parent"></Spinner>
 <TextView
  android:layout_width="wrap_content"
  android:id="@+id/textView1"
  android:text="TextView"
  android:layout_height="wrap_content"
  android:textAppearance="?android:attr/textAppearanceLarge"></TextView>
</LinearLayout>

실행결과

 

 

 

저작자 표시
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Trackback 0 : Comment 0

Write a comment