티스토리 뷰

안녕하세요.

오늘은 안드로이드에서 spinner를 사용하는 방법에 대해 알아보겠습니다. : )

 

( MainActivity를 기준으로 파일 이름을 작성했습니다. )

먼저, main_activitiy.xml에서 Spinner를 선언해주세요.

<Spinner
  android:id="@+id/since_spinner"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" />

 

그다음, Spinner 안에 들어갈 item 목록을 작성하겠습니다.

res → values 에서 arrays.xml 파일을 생성해 주신 후, 다음과 같이 작성해주세요.

name은 Adapter 객체가 접근하기 위해 필요한 속성입니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <string-array name="since">
    <item>today</item>
    <item>week</item>
    <item>month</item>
  </string-array>
</resources>

 

이제 MainActivity.java에서 Spinner와 Spinner에 들어갈 item을 연결하는 코드를 작성하겠습니다.

public class MainActivity extends AppCompatActivity {

  private Spinner sinceSpinner;
  private ArrayAdapter arrayAdapter;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    setViews();
  }

  public void setViews() {
    sinceSpinner = (Spinner) findViewById(R.id.since_spinner);

    // ★
    arrayAdapter = ArrayAdapter.createFromResource(this, R.array.since, android.R.layout.simple_spinner_dropdown_item);

    sinceSpinner.setAdapter(arrayAdapter);
  }

}

 

표시가 있는 곳에 createFromResource 메소드를 살펴보겠습니다.

public static ArrayAdapter<CharSequence> createFromResource (
  Context context, 
  int textArrayResId, 
  int textViewResId
)

 

createFromResource 메소드에 파라미터는 다음과 같습니다.

세 번째 파라미터인 textViewResourceId는 직접 만들지 않고 안드로이드에서 제공하는 레이아웃을 사용했습니다.

context  절대로 null 값이 올 수 없다
textArrayResId  Spinner에 들어갈 item이 담긴 array 식별자
textViewResId  뷰(Spinner)에 사용된 레이아웃

 

이렇게 Spinner를 사용하는 방법에 대해 알아보았습니다. !

설명이 잘못된 점이 있거나 부족한 점이 있다면 댓글을 통해 알려주세요.

감사합니다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함