[#11][안드로이드] Spinner(ComboBox) 구현, 글자 색상과 배경 Custom하기

Spinner(ComboBox) 구현, 글자 색상과 배경 Custom하기

1. values > new > xml > values XML file > field.xml 생성하여 Spinner내에 담을 내용 적기
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="spinnerArray">
        <item> 분야를 선택하세요. </item>
        <item> 요리/베이킹 </item>
        <item> 공예/미술 </item>
        <item> 운동 </item>
        <item> 음악 </item>
        <item> 컴퓨터 </item>
        <item> 사진 </item>
    </string-array>
</resources>
cs

2. main_activity.xml 작성.
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white">
    <Spinner
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:id="@+id/spinner_field"
         android:spinnerMode="dropdown"
         android:background="@drawable/editbox"
         android:textColor="@color/black"/>
</LinearLayout>
cs

3. spinner_item.xml 작성. (Spinner 내부 레이아웃 설정)
textSize, textColor, background 설정
<?xml version="1.0" encoding="utf-8"?>
<TextView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="15dp"
        android:textColor="@color/black"
        android:background="#00ff0000"
        style="?android:attr/spinnerItemStyle"
        android:paddingTop="4dp"
        android:paddingBottom="4dp"
 />
cs

4. Main.java 수정
    //Spinner객체 생성
    final Spinner spinner_field = (Spinner) view.findViewById(R.id.spinner_field);
    
    //1번에서 생성한 field.xml의 item을 String 배열로 가져오기
    String[] str = getResources().getStringArray(R.array.spinnerArray);
    //2번에서 생성한 spinner_item.xml과 str을 인자로 어댑터 생성.
    final ArrayAdapter<String> adapter= new ArrayAdapter<String>(getContext(),R.layout.spinner_item,str);
    adapter.setDropDownViewResource(R.layout.support_simple_spinner_dropdown_item);
    spinner_field.setAdapter(adapter);
    //spinner 이벤트 리스너    
    spinner_field.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
       @Override
        public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
           if(spinner_field.getSelectedItemPosition() > 0){
               //선택된 항목 
               Log.v("알림",spinner_field.getSelectedItem().toString()+ "is selected");
           }
        }
       @Override
        public void onNothingSelected(AdapterView<?> adapterView) {
        }
    });
cs




결과물




댓글

댓글 쓰기

가장 많이 본 글