Maison >Java >javaDidacticiel >Comment puis-je accéder aux ressources Android par nom plutôt que par identifiant ?

Comment puis-je accéder aux ressources Android par nom plutôt que par identifiant ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-27 12:54:16757parcourir

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

Accès aux ressources par nom dans Android

Lors du développement d'applications Android, il est souvent nécessaire d'accéder à des ressources telles que des chaînes, des dessins et des mises en page. Bien qu'il soit courant d'utiliser l'ID entier de la ressource, il peut y avoir des situations où il est préférable d'y accéder par son nom.

Méthode d'obtention de l'ID de ressource par nom

L'Android framework fournit une méthode pour récupérer l'ID d'une ressource en fonction de son name :

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

Où :

  • cela représente un objet Activity ou Context.
  • nameOfResource est le nom de la ressource tel que défini dans le fichier de ressources respectif (par ex. , strings.xml pour les chaînes).
  • type est le type de ressource, tel que dessinable pour les images ou chaîne pour text.
  • getPackageName() récupère le nom du package de votre application.

Exemple d'utilisation

Pour accéder à une ressource de chaîne nommée "app_name " dans le fichier strings.xml :

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

De même, pour accéder à une ressource dessinable nommée "image.png" dans le dossier dessinable :

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

Considérations sur les performances

Il est important de noter que l'accès aux ressources par nom à l'aide de getIdentifier() est relativement lent par rapport à à utiliser directement l'ID entier. Par conséquent, il est recommandé de n'utiliser cette méthode que lorsque cela est nécessaire, par exemple lorsqu'un chargement dynamique des ressources est requis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn