2010-01-27 28 views
5

Buduję aplikację na Androida i mam problem z uzyskaniem zasobu z pliku string.xml.Nie można pobrać zasobu z aplikacji Android

Potrzebuję adresu URL w String.xml, który będzie używany wielokrotnie przez aplikację.

Próbowałem Resources.getText("my_url"), ale to nie działa. Eclipse narzeka, kiedy używam tego.

Czy uważasz, że jest to najlepszy sposób?

Odpowiedz

12

Co prawdopodobnie chcesz to:

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

getString() method is in Context co oznacza, że ​​jest ona dostępna bezpośrednio w swojej klasie Activity od Activity jest podklasą Context. (Metoda getString() jest również w Resources ale łatwiej jest zadzwonić na niego bezpośrednio na Activity).

Co się dzieje z zasobów XML jest to, że każdy otrzymuje unikalny całkowitą identyfikator i jest dodany do automatically generated R class jako public static final int . Następnie używasz tych identyfikatorów do odniesienia się do zasobów. Zajrzyj do folderu gen w projekcie Eclipse, gdzie znajdziesz klasę R.

+0

Dzięki, sprawdzę to. Ale, jeśli chcę uzyskać ten ciąg poza działaniem (na przykład w kliencie pomocnika), czy mogę użyć GetBaseContext(). GetString (klucz)? – Luc

+2

Nie mam pojęcia, co 'GetBaseContext()' obawiam się. Przekazuję "Kontekst" do każdej z moich klas pomocy, aby umożliwić im wykonywanie takich czynności. Należy jednak zachować ostrożność, kiedy trzymasz się odniesienia do kontekstu, ponieważ możesz przeciekać pamięć. http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html –

+0

Dzięki, to dobry punkt i bardzo dobry artykuł. Pozdrawiam, Luc – Luc

Powiązane problemy