2010-01-27 17 views
5

Sto costruendo un'app per Android e ho un problema a ottenere risorse da string.xml.Impossibile ottenere la risorsa dall'applicazione Android

Ho bisogno di avere un URL in String.xml che verrà utilizzato più volte attraverso l'app.

Ho provato Resources.getText("my_url"), ma questo non funziona. Eclipse si lamenta quando lo uso.

Pensi che questo sia il modo migliore per fare?

risposta

12

Che probabilmente si desidera è:

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

Il getString() method is in Context il che significa che è disponibile direttamente nella tua classe Activity dal Activity è una sottoclasse di Context. (Il metodo getString() è anche in Resources ma è più facile chiamare su di esso direttamente sul tuo Activity.)

Cosa succede con le risorse XML è che ciascuno è data un ID unico intero e questo si aggiunge alla automatically generated R class come public static final int . Quindi si utilizzano questi ID per fare riferimento alle risorse. Dai uno sguardo alla cartella gen nel tuo progetto Eclipse e troverai la classe R lì.

+0

Grazie, controllerò questo. Ma, se voglio ottenere questa stringa all'esterno di un'attività (ad esempio in una classe helper), posso utilizzare GetBaseContext(). GetString (chiave)? – Luc

+2

Non ho idea di cosa 'GetBaseContext()' sia paura. Passo un 'Context' a ciascuna delle mie classi di aiuto per consentire loro di fare cose come questa. Tuttavia, fai attenzione quando fai questo, come se ti aggrappassi a un riferimento al contesto. Potresti perdere memoria piuttosto male. http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html –

+0

Grazie, questo è un buon punto e un ottimo articolo. Saluti, Luc – Luc

Problemi correlati