>Java >java지도 시간 >ID 대신 이름으로 Android 리소스에 어떻게 액세스할 수 있나요?

ID 대신 이름으로 Android 리소스에 어떻게 액세스할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2024-12-27 12:54:16757검색

How Can I Access Android Resources by Name Instead of ID?

Android에서 이름으로 리소스 액세스

Android 애플리케이션을 개발할 때 문자열, 드로어블, 레이아웃과 같은 리소스에 액세스해야 하는 경우가 많습니다. 리소스의 정수 ID를 사용하는 것이 일반적이지만 이름으로 액세스하는 것이 선호되는 상황이 있을 수 있습니다.

이름으로 리소스 ID를 얻는 방법

Android 프레임워크는 주어진 리소스의 ID를 검색하는 방법을 제공합니다. name:

int resourceId = this.getResources()
    .getIdentifier("nameOfResource", "type", this.getPackageName())

여기서:

  • Activity 또는 Context 개체를 나타냅니다.
  • nameOfResource는 해당 리소스 파일에 정의된 리소스 이름입니다(예: , 문자열의 경우 strings.xml).
  • type은 이미지의 경우 drawable과 같은 리소스 유형입니다. 텍스트용 문자열입니다.
  • getPackageName()은 애플리케이션의 패키지 이름을 검색합니다.

사용 예

라는 문자열 리소스에 액세스하려면 strings.xml의 "app_name" 파일:

int stringId = this.getResources()
    .getIdentifier("app_name", "string", this.getPackageName());
String appName = this.getString(stringId);

마찬가지로, 드로어블 폴더에 있는 "image.png"라는 드로어블 리소스에 액세스하려면:

int drawableId = this.getResources()
    .getIdentifier("image", "drawable", this.getPackageName());
Drawable drawable = this.getDrawable(drawableId);

성능 고려 사항

getIdentifier()를 사용하여 이름으로 리소스에 액세스하는 것은 정수를 사용하는 것에 비해 상대적으로 느리다는 점에 유의하는 것이 중요합니다. 직접 신분증. 따라서 동적 리소스 로딩이 필요한 경우 등 필요한 경우에만 이 방법을 사용하는 것이 좋습니다.

위 내용은 ID 대신 이름으로 Android 리소스에 어떻게 액세스할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.