2010-01-27 4 views
5

Je construis une application Android, et j'ai un problème pour obtenir des ressources de string.xml.Impossible d'obtenir une ressource à partir de l'application android

Je dois avoir une URL au String.xml qui sera utilisée plusieurs fois via l'application. J'ai essayé Resources.getText("my_url"), mais cela ne fonctionne pas. Eclipse se plaint quand j'utilise ceci.

Pensez-vous que c'est la meilleure façon de faire?

Répondre

12

Qu'est-ce que vous voulez sans doute est:

String myUrl = getString(R.string.my_url); 

Le getString() method is in Context ce qui signifie qu'il est directement dans votre classe Activity depuis Activity est une sous-classe de Context. (La méthode getString() est également Resources mais il est plus facile d'appeler directement sur votre Activity.)

Que se passe avec vos ressources XML est que chacun reçoit un entier ID unique et ceci est ajouté à la automatically generated R class comme public static final int . Vous utilisez ensuite ces ID pour référencer les ressources. Jetez un oeil dans le dossier gen dans votre projet Eclipse et vous y trouverez la classe R.

+0

Merci, je vais vérifier cela. Mais, si je veux obtenir cette chaîne en dehors d'une activité (dans une classe d'aide par exemple), puis-je utiliser un GetBaseContext(). GetString (clé)? – Luc

+2

Je n'ai aucune idée de ce que 'GetBaseContext()' est j'ai peur. Je passe un 'Context' à chacune de mes classes d'aide pour leur permettre de faire des choses comme ça. Cependant, soyez prudent lorsque vous faites comme si vous vous accrochez à une référence au contexte, vous pouvez perdre assez de mémoire. http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html –

+0

Merci, c'est un bon point et un très bon article. Salutations, Luc – Luc

Questions connexes