코틀린 10-2 다이얼로그

hong030·2022년 2월 5일
0

다이얼로그:
사용자와 상호작용하는 메세지. 토스트, 날짜 시간 입력, 알림창, 커스텀 다이얼로그 등.

  1. 날짜나 시간 입력받기
        binding.date.setOnClickListener{
            DatePickerDialog(this, object:DatePickerDialog.OnDateSetListener{
                override fun onDateSet(p0: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {
                    Log.d("hong", "year: ${year} month: ${month+1} dayOfMonth: ${dayOfMonth}")
                }
            }, 2020, 8, 21).show()
        }

        binding.time.setOnClickListener{
            TimePickerDialog(this, object:TimePickerDialog.OnTimeSetListener{
                override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) {
                    Log.d("hong", "time: $hourOfDay , minute: $minute")
                }
            }, 15, 0, true).show()
        }
  1. 알림창

        binding.date.setOnClickListener{
            val eventHandler = object:DialogInterface.OnClickListener{
                override fun onClick(dialog: DialogInterface?, which: Int) {
                    if(which == DialogInterface.BUTTON_POSITIVE){
                        Log.d("hong", "this is positive")
                    }else if (which==DialogInterface.BUTTON_NEGATIVE){
                        Log.d("hong", "this is negative")
                    }
                }
            }

            AlertDialog.Builder(this).run{
                setTitle("this is title")
                setIcon(android.R.drawable.ic_dialog_alert)
                setMessage("정말 종료하시겠습니까?")
                setPositiveButton("OK", eventHandler)
                setNegativeButton("NO", eventHandler)
                setNeutralButton("More", null)
                show()
            }
        }
  1. 기타... 목록 출력

        binding.date.setOnClickListener{
            val items = arrayOf<String>("사과","바나나","체리","수박")
            AlertDialog.Builder(this).run{
                setTitle("this is list")
                setIcon(android.R.drawable.ic_dialog_alert)
                setMultiChoiceItems(items, booleanArrayOf(true, false, true, true), object:DialogInterface.OnMultiChoiceClickListener{
                    override fun onClick(dialog: DialogInterface?, p0: Int, p1:Boolean) {
                        Log.d("hong", "과일: ${items[p0]} 이 ${if(p1) "선택되었습니다" else "해제되었습니다"}")
                    }
                })
                setPositiveButton("닫기", null)
                show()
            }.setCanceledOnTouchOutside(false)
        }
profile
자바 주력, 프론트 공부 중인 초보 개발자. / https://github.com/hongjaewonP

0개의 댓글

관련 채용 정보