상세 컨텐츠

본문 제목

[안드로이드 코틀린] Custom Spinner 쉽게 만드는 방법 part1

안드로이드

by aries574 2022. 7. 13. 16:14

본문


이번 시간에는 스피너에 들어가는 데이터를 담을 클래스, 스피너 레이아웃, 데이터와 레이아웃을 연결해주는

스피너 어댑터를 만들어 보겠습니다.


목차

1. 데이터 담을 클래스 Fruit.kt
2. 스피너 레이아웃 spinner_layout.xml
3. 스피너 어댑터 FruitAdapter.kt


1. 데이터 담을 클래스 Fruit.kt

- 설명 -

스피너에 보여줄 데이터를 담는 클래스

data class Fruit(
    val fruit_name: String,
    val fruit_image: Int
)


2. 스피너 레이아웃 spinner_layout.xml

- 설명 -

1. 스피너 이미지를 보여주는 ImageView

2. 스피너 텍스트를 보여주는 TextView

3. 아이콘 res -> drawable

avocado.png
0.00MB
banana.png
0.00MB
coconut.png
0.00MB
lemon.png
0.00MB

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <ImageView
        android:id="@+id/fruit_image"
        android:layout_width="32dp"
        android:layout_height="32dp"
        android:src="@drawable/avocado"/>

    <TextView
        android:id="@+id/fruit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginStart="8dp"
        android:text="아보카도"
        android:textColor="@android:color/black"/>
</LinearLayout>

 


3. 스피너 어댑터 FruitAdapter.kt

- 설명 -

데이터레이아웃을 연결해주는 클래스

class FruitAdapter(private val context:Context,
    private val fruitList: ArrayList<Fruit>): BaseAdapter() {

    override fun getCount(): Int {
        return fruitList.size
    }

    override fun getItem(position: Int): Any {
        return fruitList[position]
    }

    override fun getItemId(p0: Int): Long {
        return 0
    }


    @SuppressLint("ViewHolder")
    override fun getView(position: Int, view: View?, viewGroup: ViewGroup?): View {

        val rootView: View = LayoutInflater.from(context)
            .inflate(R.layout.spinner_layout, viewGroup, false)

        //객체 생성
        val fruitName: TextView = rootView.findViewById(R.id.fruit_text)
        val fruitImage: ImageView = rootView.findViewById(R.id.fruit_image)

        //데이터 담기
        fruitName.text = fruitList[position].fruit_name
        fruitImage.setImageResource(fruitList[position].fruit_image)

        return rootView
    }
}

2022.07.10 - [안드로이드] - [안드로이드 코틀린] 자동완성 텍스트뷰 쉽게 만드는 방법

 

[안드로이드 코틀린] 자동완성 텍스트뷰 쉽게 만드는 방법

이번 시간에는 입력한 텍스트와 비슷한 글자를 보여줘서 자동 완성할 수 있는 기능을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구현 activity_main.xml 3. 메인 코드 구현 MainActivity.kt 1..

aries574.tistory.com

2022.07.09 - [안드로이드] - [안드로이드 코틀린] RecognizerIntent 음성을 텍스트(Text)로 전환시켜주는 방법

 

[안드로이드 코틀린] RecognizerIntent 음성을 텍스트(Text)로 전환시켜주는 방법

이번 시간에는 음성을 텍스트로 전환시켜주는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구현 activity_main.xml 3. 메인 코드 구현 MainActivity.kt 1. 실행 화면 2. 메인 화면 구현 activity..

aries574.tistory.com

2022.07.08 - [안드로이드] - [안드로이드 코틀린] TextToSpeech 텍스트(Text)를 음성으로 전환시켜주는 방법

 

[안드로이드 코틀린] TextToSpeech 텍스트(Text)를 음성으로 전환시켜주는 방법

이번 시간에는 입력한 텍스트를 입력하면 음성으로 전환하는 방법에 대하여 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구현 activity_main.xml 3. 메인 코드 구현 MainActivity.kt 1. 실행 화

aries574.tistory.com

 

 

반응형

관련글 더보기

댓글 영역