KKGRAM

[Spinner] 안드로이드 콤보박스 만들기 본문

개발

[Spinner] 안드로이드 콤보박스 만들기

kkgram 2016. 4. 22. 14:37


[Spinner] 안드로이드 콤보박스 만들기



나름 자주 쓰게되는 폼이다. 그럴때마다 매번 검색하자니 역시 귀찮다. 어플을 만들면서 문의 페이지를 만들어야 하는데, 문의 항목에 대해서 콤보박스로 구현하는게 괜찮을 것 같았다. 기본형은 따로 어댑터를 만들지 않아도 되므로 간편하므로 아마 예제 소스도 굉장히 짧을 것 같다.



콤보박스가 필요 한 곳에 스피너를 먼저 달아주고


activity_main.xml

<Spinner
    android:id="@+id/txt_question_type"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginRight="@dimen/view.padding.default.small"
    android:layout_marginBottom="@dimen/view.padding.default.small"
    android:layout_marginTop="@dimen/view.padding.default.small"
    android:textSize="@dimen/font_normal"
    android:textColor="@color/primary.blue"
    android:gravity="right"></Spinner>



values - array.xml (values폴더에 array.xml이없다면 만들어주자)

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="question">
        <item>서비스문의</item>
        <item>리뷰문의</item>
        <item>제휴문의</item>
        <item>업소문의</item>
        <item>이벤트</item>
        <item>기타</item>
    </string-array>
</resources>



콤보박스에 보여 줄 텍스트에 대해서 각각 아이템을 지정 해 준다. 설정 한 아이템들이 만든 스피너에 연결해주는 작업은 자바 파일에서 구현 해 주면 된다. 구현하는데에도 많은 노력이 필요하진 않다.



MainActivity.java

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_question);

        //spinner = (Spinner) findViewById(R.id.txt_question_type); //butterknife 없을경우
        sAdapter = ArrayAdapter.createFromResource(this, R.array.question, android.R.layout.simple_spinner_dropdown_item);

        spinner.setAdapter(sAdapter);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            public void onItemSelected(AdapterView  parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this,
                        sAdapter.getItem(position), Toast.LENGTH_SHORT).show();
            }
            public void onNothingSelected(AdapterView  parent) {
            }
        });
    }




콤보박스를 통해 선택했을 때, 토스트창이 뜨도록 했어요. 



예시화면



1 Comments
댓글쓰기 폼