코틀린 코드에서 일반적으로 resource를 id를 통해 지정한다. 예를들어 텍스트뷰의 배경을 setBackgroundResource로 지정할 때 아래 코드와 같이 지정한다.
textView.setBackgroundResource(R.drawable.drawable_0)
textView.setBackgroundResource(R.drawable.drawable_1)
textView.setBackgroundResource(R.drawable.drawable_2)
textView.setBackgroundResource(R.drawable.drawable_3)
textView.setBackgroundResource(R.drawable.drawable_4)
textView.setBackgroundResource(R.drawable.drawable_5)
위 코드 같은 경우는 "drawable_" + 숫자의 형태로 리소스 이름에 일정한 패턴이 존재한다. 이 때 문자열을 이용한다면 특정 상황에 원하는 drawable을 쉽게 지정할 수 있다. 문자열을 이용하여 resource를 얻어오기 위해선 Context 객체의 resources.getIdentifier("파일 이름", "리소스 타입", "패키지 이름") 함수를 사용한다.
예를 들어 a라는 정수 변수가 존재 할 때 a를 6으로 나눈 나머지에 따라 배경을 지정하고 싶다고 하자. 이 때 아래 코드와 같이 getIdentifier를 사용한다면 if문이나 when문 없이 간편하게 이를 구현할 수 있다.
val a = 10
val resource = applicationContext.resources.getIdentifier("drawable_${a % 6}",
"drawable",
applicationContext.packageName)
textView.setBackgroundResource(resource)
[Android / Kotlin] 안드로이드 14 Notification Ongoing 속성 동작 변경 (0) | 2024.03.14 |
---|---|
[Android / Kotlin] Naver, Github Oauth2 (ACCESSTOKEN 발급) (0) | 2023.04.08 |
[Android/Kotlin] Room 이용 로컬 DB에 사용자 정의 자료형 및 리스트 추가(@Embed, @TypeConverter) (0) | 2022.04.06 |
[Android/Kotlin] Kotlin 코드에서 LinearLayout에 동적으로 Custom Layout(<include />) 추가 (0) | 2022.04.04 |
[Android/Kotlin] Fragment에서 context 사용법 (2) | 2022.01.11 |