728x90
오늘은 배열과 AlertDialog.Builder를 활용해 코틀린 언어로 항목 선택 다이얼로그를 만들어 보겠습니다.
레이아웃 xml 파일 코드(activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="16dp">
<TextView
android:id="@+id/itemTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp"
android:text="선택한 항목이 여기에 표시됩니다." />
<Button
android:id="@+id/showDialogButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="목록 보기" />
</LinearLayout>
액티비티 코틀린 코드
class MainActivity : AppCompatActivity() {
private lateinit var itemTextView: TextView // 선택한 항목을 표시할 텍스트뷰
private lateinit var showDialogButton: Button // 다이얼로그 띄우기 버튼
private lateinit var listDialog: AlertDialog // 목록을 보여줄 다이얼로그
private val strArray = arrayOf("연어", "고등어", "참치", "갈치", "광어", "우럭", "복어", "농어", "도미", "전갱이", "가자미", "메기", "장어", "돌고래", "상어")
// 다이얼로그의 목록에 보여줄 항목 데이터
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
itemTextView = findViewById(R.id.itemTextView)
showDialogButton = findViewById(R.id.showDialogButton)
// 버튼을 누를 시 다이얼로그가 보이도록 설정
showDialogButton.setOnClickListener {
showListDialog()
}
// 다이얼로그를 생성
createListDialog()
}
private fun createListDialog() { // 다이얼로그를 생성하는 메서드
// 다이얼로그 빌더 생성
val builder = AlertDialog.Builder(this)
// 빌더에 보여줄 목록 정보와 항목을 눌렀을 시 처리할 이벤트 설정
builder.setItems(strArray) { dialogInterface, i ->
// 항목을 눌렀을 시 텍스트뷰에 해당 항목 표시
itemTextView.text = strArray[i]
}
// 빌더에 목록 선택 안 하고 닫기 위한 버튼 추가
builder.setNegativeButton("닫기") { dialog, _ ->
dialog.dismiss()
}
// 빌더에 설정한 정보대로 다이얼로그 생성
listDialog = builder.create()
}
private fun showListDialog() { // 다이얼로그를 보여주는 메서드
listDialog.show()
}
}
실행 영상
다이얼로그 그리고 선택한 항목이 화면에 보이는 것을 확인할 수 있습니다.
'안드로이드 코틀린' 카테고리의 다른 글
[Kotlin][Android]Toast 메시지 긴 기간 또는 짧은 기간 띄우기 (0) | 2024.10.24 |
---|---|
[Kotlin][Android]textwatcher 활용해 글 변경 반응하기 (2) | 2024.10.18 |
[Kotlin][Android] Jetpack Compose 목록에 텍스트 아이템 추가, 삭제하기 (4) | 2024.10.09 |
[Kotlin][Android]SeekBar의 이미지 변경하기 (2) | 2024.10.06 |
[Kotlin][Android] Jetpack Compose 클릭한 아이템 개수 실시간 업데이트하기 (8) | 2024.10.03 |