가변텍스트로 리소스 접근하기

android.content.res.Resources.getIdentifier( name, defType, android.content.ContextWrapper.getPackageName() ) 
  • name : 정의한 리소스 명

  • defType : 리소스 카테고리

  • ex ) 아래 두 코드는 같은 리소스R.id.btn_0 에 접근한다.

    var idx = 0
    // Type 1
    findViewById<View>( resources.getIdentifier("btn_$idx", "id", packageName) )
    // Type 2
    findViewById<View>( R.id.btn_0 )
  • 장점

    • 반복문내에서 규칙적으로 명명한 리소스에 접근하여 간결한 코드표현이 가능하다.
    • 다양한 컴포넌트에 접근하는 방식을 Array로 관리하여 일괄적으로 접근할 수 있다.
  • 단점

    • 컴파일타임에 참조하는 리소스를 검증해주지 않기 때문에 없는 리소스를 참조하는 경우 NullPointerException 을, 형식이 다른 리소스를 참조하는경우에 런타임 예외가 발생할 수 있다.

+ Recent posts