마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MediaPlayer.create(this , 여기에 rawId를 넘겨야 하는데 어떻게 하면 좋을까요?)

0 추천
 this.mediaPlayer = MediaPlayer.create(this , alarmType)여기에 rawId 를 어떻게 넣으면 좋을까요

private fun fire() {
    fire.setOnClickListener {
        if (fire.isChecked) {
            fire.setBackgroundDrawable(resources.getDrawable(R.drawable.clickable))
            startAlarmService(AlarmService.AlarmType.FIRE) <-- 여기에서 잘못이 있는 걸 까요
        } else
            fire.setBackgroundDrawable(resources.getDrawable(R.drawable.day_button))
    }
}
fun startAlarmService(alarmType: AlarmService.AlarmType) {
    val intent = Intent(this, AlarmService::class.java)
    intent.putExtra("alarmType", alarmType) 
    startService(intent)
}
enum class AlarmType(val rawId: Int) {
    RAINNING(R.raw.rainning) , FIRE(R.raw.fire), FORSEST(R.raw.forest)
}
rawId를 어떻게 넘겨야 하는지 모르겠습니다
100만 다운로드 (290 포인트) 님이 2022년 6월 19일 질문

1개의 답변

+1 추천

해당 타입을 받을 때, Service쪽에서 as를 사용해서 타입캐스팅을 하셔야 해요

val alarmType = intent?.getSerializalbleExtra("alaramType") as? AlaramType ?: throw IllegalArgumentException("AlaramType이 정의되어 있지 않습니다.");

 

spark (227,470 포인트) 님이 2022년 6월 19일 답변
...