상세 컨텐츠

본문 제목

[Android]스피너

Android 개발

by mobile 2013. 4. 7. 10:52

본문

반응형

Spinner는 윈도우 프로그램의 콤보박스처럼 드롭다운 방식의 아이템 출력과 사용자가 선택 할 수 있는 기능을 제공한다.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:padding="10dip"

    android:orientation="vertical" >

    <TextView android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:layout_marginTop="10dip"

        android:text="@string/planet_prompt" />

    <Spinner android:id="@+id/spinner"

        android:layout_width="match_parent"

        android:layout_height="wrap_content"

        android:prompt="@string/planet_prompt"

        android:entries="@array/planets_array" />

</LinearLayout>

android:prompt 속성은 스피너에 표기되는 제목이다. 그리고 스피너에 출력되는 자료들은 android:entries 속성에 다음과 같은 XML 문자열(string-array)을 연결하여 채우게 된다.

<?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>


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.Toast;


public class ExSpinner extends Activity {


@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.spinner_ex_01);


Spinner spinner = (Spinner) findViewById(R.id.spinner);

// ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(

// this, R.array.planets_array,

// android.R.layout.simple_spinner_item);

// adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

// spinner.setAdapter(adapter);


spinner.setOnItemSelectedListener(new MyOnItemSelectedListener());

}


public class MyOnItemSelectedListener implements OnItemSelectedListener {


@Override

public void onItemSelected(AdapterView<?> parent, View view, int pos,

long id) {

// TODO Auto-generated method stub

Toast.makeText(

parent.getContext(),

"The planet is " + parent.getItemAtPosition(pos).toString(),

Toast.LENGTH_LONG).show();

}


@Override

public void onNothingSelected(AdapterView<?> arg0) {

// TODO Auto-generated method stub


}

}

}

createFromResource(Context context, int textArrayResId, int textViewResId) 메서드는 외부 XML로 저장된 배열을 자바 프로그램으로 읽어 배열아댑터를 만드는데 사용하는 메서드이다.


public void setDropDownViewResource(int resource) 메서드는 드롭다운할 뷰를 생성할 레이아웃을 설정하는 메서드이다.


CheckedTextView 요소는 Checkable 인터페이스를 구현하고 TextView를 상속받는 클래스이다. 대부분 사용자가 직접 구현하기보다 스피너와 같은 아댑터뷰에서 라디오버튼 처럼 아이템을 선택하는데 많이 사용.


public void setAdapter(SpinnerAdapter adapter) 메서드를 사용하여 스피너와 스피너를 통해 드롭다운되는 아댑터를 연결시켜주게 된다.


[결과]



반응형

'Android 개발' 카테고리의 다른 글

[Android]자동완성텍스트뷰  (0) 2013.04.08
[Android]그리드뷰  (0) 2013.04.07
[Android]베이스어댑터  (0) 2013.04.07
[Android]리스트액티비티와 리스트 뷰  (0) 2013.04.07
[Android] 아댑터와 아댑터 뷰  (0) 2013.04.06

관련글 더보기

댓글 영역