코딩 기록/Kotlin
Kotlin / listview 이용해서 android화면에 스크롤 사용하는 긴 선택항목 만들기
NomadHaven
2022. 2. 7. 02:15
파일 및 폴더 구성
layout폴더에 item_spinner.xml 파일 생성
item_spinner.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/listItem"
android:layout_width="match_parent"
android:layout_height="45dp"
android:paddingTop="10dp"
android:paddingStart="30dp"
android:textColor="@android:color/holo_orange_dark"
android:textSize="15sp"
android:paddingLeft="30dp"/>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="118dp"
android:layout_height="28dp"
android:text="Hello World!"
android:textSize="10sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.0" app:layout_constraintHorizontal_bias="0.547"/>
<ListView
android:id="@+id/listView"
android:layout_width="600dp"
android:layout_height="923dp"
tools:layout_editor_absoluteY="36dp"
tools:layout_editor_absoluteX="1dp"
tools:ignore="MissingConstraints"/>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.kt
package com.example.sample17
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.ArrayAdapter
import android.widget.ListView
import android.widget.TextView
import androidx.annotation.Dimension
class MainActivity : AppCompatActivity(),AdapterView.OnItemClickListener {
var items = arrayOf(
"서울", "부산", "대구", "광주", "대전", "울산", "전주", "목포",
"제주", "강원", "태백", "인천", "서울", "부산", "대구", "광주",
"대전", "울산", "전주", "목포", "제주", "강원", "태백", "인천",
"대전", "울산", "전주", "목포", "제주", "강원", "태백", "인천"
)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val listView = findViewById<View>(R.id.listView) as ListView //제네릭 안에 ListView대신 그냥 View로만 적어도 된다. as ListView로 형변환
val textView = findViewById<TextView>(R.id.textView)
textView.setTextSize(Dimension.SP,28.0f)
//Adapter <*> 은 어떤형이든 받아들이겠다는 말
val adapter:ArrayAdapter<*> = ArrayAdapter<Any?>(this, R.layout.item_spinner, items)
listView.adapter = adapter
listView.onItemClickListener = this
}
override fun onItemClick(p0: AdapterView<*>?, p1: View?, pos: Int, p3: Long) {
val textView = findViewById<TextView>(R.id.textView)
textView.text = items[pos]
}
}
결과화면
