[안드로이드/코틀린] 스피너

박의진·2022년 9월 10일
0

안드로이드 코틀린

목록 보기
10/16

1. activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical"
    android:padding="16dp">

    <Spinner
        android:id="@+id/spinner"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:prompt="@string/prompt"
        android:spinnerMode="dialog"
        />

/*자동완성 추천뷰 라고 생각하면 된다. 한국어의 경우 기본 1글자 이상부터 추천 완성 뜸*/
    <AutoCompleteTextView
        android:id="@+id/auto"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="24dp"
        />
    
</LinearLayout>

2. arrays.xml로 문자열 리소스 생성

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="language">
        <item>한국어</item>
        <item>영어</item>
        <item>스페인어</item>
        <item>독일어</item>
    </string-array>
</resources>

3. string.xml에 prompt 생성해준다.

<resources>
    <string name="app_name">C35</string>
    <string name="prompt">언어를 선택하세요</string>
</resources>

스피너 내부 속성에서 prompt가 사용된다.

4. MainActivity.kt

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val spinner = findViewById<Spinner>(R.id.spinner)
        val autoCompleteTextView = findViewById<AutoCompleteTextView>(R.id.auto)

        val datas = resources.getStringArray(R.array.language)
        val aa: ArrayAdapter<String> =
            ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, datas)
        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
        spinner.adapter = aa

        val autoDatas = arrayOf<String>("apple","apply","become","below")
        val autoAdapter: ArrayAdapter<String> =
            ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, autoDatas)
        autoCompleteTextView.setAdapter(autoAdapter)


    }
}

5. 실행 결과

profile
주니어 개발자의 개발일지

0개의 댓글