이번 시간에는 다이얼로그(Dialog) 리스트(List)에 체크박스(CheckBox)를 만들어
아이템 다중 선택이 가능하게 만드는 방법에 대하여 알아보겠습니다.
res -> value -> string.xml
- 설명 -
다이얼로그(Dialog)에 보일 리스트
<string-array name="colors">
<item>Red</item>
<item>Blue</item>
<item>Green</item>
</string-array>
- 설명 -
다이얼로그(Dialog) 호출하는 Button
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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">
<Button
android:id="@+id/dialog_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="다이얼로그"
android:textSize="25sp"/>
</RelativeLayout>
1. resources.getStringArray(R.array.colors)
string.xml에 있는 데이터 가져오기
2. AlertDialog.Builder(this)
다이얼로그 초기화
3. builder.setTitle
다이얼로그 제목 설정
4. builder.setMultiChoiceItems
다이얼로그 다중체크 형태 만들기
5. builder.setPositiveButton
OK이벤트
6. builder.setNegativeButton
취소 이벤트
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
//초기화
val dialogBtn: Button = findViewById(R.id.dialog_btn)
//버튼 이벤트
dialogBtn.setOnClickListener {
showDialog()
}
}//onCreate
private fun showDialog(){
//선택된 아이템 담는 변수
val mSelectedItem: ArrayList<String> = arrayListOf()
//AlertDialog 초기화
val builder: AlertDialog.Builder = AlertDialog.Builder(this)
//제목 설정
builder.setTitle("색깔을 선택하세요")
//다이얼로그 멀티 선택 이벤트
builder.setMultiChoiceItems(R.array.colors, null){
p0, which, isChecked ->
//데이터 담기
val colors: Array<String> = resources.getStringArray(R.array.colors)
//선택된 아이템 담기
if(isChecked){
//추가
mSelectedItem.add(colors[which])
}else{
//삭제
mSelectedItem.remove(colors[which])
}
}
//Ok이벤트
builder.setPositiveButton("Ok"){
p0, p1 ->
var finalSelection = ""
//선택된 아이템에서 하나씩 꺼내서 item에 담는다.
for(item: String in mSelectedItem){
finalSelection = finalSelection + "\n" + item
}
Toast.makeText(applicationContext, "선택된 아이템은 ${finalSelection}",
Toast.LENGTH_SHORT).show()
}
//취소 이벤트
builder.setNegativeButton("Cancel"){
dialog, p1 -> dialog.cancel()
}
val alertDialog: AlertDialog = builder.create()
alertDialog.show()
}
}//MainActivity
2022.07.01 - [안드로이드] - [안드로이드 코틀린] DrawerLayout Navigation 만드는 방법 part1 - 화면 만들기
[안드로이드 코틀린] DrawerLayout Navigation 만드는 방법 part1 - 화면 만들기
이번에는 옆으로 밀면 숨겨져 있는 메뉴를 보여주는 DrawerLayout 화면 만드는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. 테마 설정 4. 툴바 화면 만들기 toolbar_layout.xml
aries574.tistory.com
2022.06.24 - [안드로이드] - [안드로이드 코틀린] Database Room 사용법 part1 - Room 설정
[안드로이드 코틀린] Database Room 사용법 part1 - Room 설정
안드로이드에서 앱 내부에 데이터를 관리하는 기능을 하는 Room 사용법에 대하여 알아보겠습니다. 이번 시간에는 기본 설정을 해보겠습니다. 아래 링크를 들어가시면 Room에 대한 상세한 정보를
aries574.tistory.com
2022.06.20 - [안드로이드] - [안드로이드 코틀린] 밀어서 화면 변경 ViewPager2 갤러리 느낌으로 만드는 방법
[안드로이드 코틀린] 밀어서 화면 변경 ViewPager2 갤러리 느낌으로 만드는 방법
이번 시간에는 뷰페이저2(ViewPager2)를 이용해서 이미지를 가로, 세로 방향으로 밀어서 갤러리 느낌으로 보여주는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 라이브러리 등록 3. dataBinding 설
aries574.tistory.com
[안드로이드 코틀린] TextToSpeech 텍스트(Text)를 음성으로 전환시켜주는 방법 (0) | 2022.07.08 |
---|---|
[안드로이드 코틀린] 다이얼로그(Dialog) 사용자정의 (Custom) 화면으로 보여주는 방법 (0) | 2022.07.07 |
[안드로이드 코틀린] 다이얼로그(Dialog) 리스트(List)로 보여주는 방법 (0) | 2022.07.05 |
[안드로이드 코틀린] DrawerLayout Navigaion 만드는 방법 part4 - 네비게이션 호출 메뉴 버튼 만들기 (0) | 2022.07.04 |
[안드로이드 코틀린] DrawerLayout Navigaion 만드는 방법 part3 - 헤더 화면 만들기 (0) | 2022.07.03 |
댓글 영역