2010-01-27 8 views
5

Ich baue eine Android-App, und ich habe ein Problem, Ressource von string.xml zu bekommen.Ich kann keine Ressource von Android-Anwendung erhalten

Ich brauche eine URL in String.xml, die mehrmals über die App verwendet werden.

Ich versuchte Resources.getText("my_url"), aber das funktioniert nicht. Eclipse beschwert sich, wenn ich das benutze.

Denken Sie, dass dies der beste Weg ist?

Antwort

12

Was möchten Sie wahrscheinlich ist:

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

Die getString() method is in Context was bedeutet, dass es direkt in Ihrem Activity Klasse seit Activity ist eine Unterklasse von Context verfügbar ist. (Die getString() Methode ist auch in Resources aber es ist einfacher, auf es auf Ihrem Activity direkt anzurufen.)

Was mit Ihren XML-Ressourcen geschieht, ist, dass jeder eine eindeutige Ganzzahl-ID gegeben ist und dies wird die automatically generated R class als public static final int hinzugefügt . Sie verwenden diese IDs dann, um auf die Ressourcen zu verweisen. Werfen Sie einen Blick in den Ordner gen in Ihrem Eclipse-Projekt und Sie werden die R Klasse dort finden.

+0

Danke, ich werde das überprüfen. Aber, wenn ich diese Zeichenfolge außerhalb einer Aktivität abrufen möchte (in einer Hilfsklasse zum Beispiel), kann ich eine GetBaseContext(). GetString (key) verwenden? – Luc

+2

Ich habe keine Ahnung, was 'GetBaseContext()' ist, fürchte ich. Ich übergebe jedem meiner Hilfsklassen einen 'Kontext', damit sie solche Dinge tun können. Seien Sie jedoch vorsichtig, wenn Sie dies so tun, als ob Sie sich an einen Verweis auf den Kontext halten, in dem Sie den Speicher ziemlich schlecht auslaufen lassen können. http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html –

+0

Danke, das ist ein guter Punkt und ein sehr guter Artikel. Prost, Luc – Luc

Verwandte Themen