2010-01-27 33 views
5

Tôi đang xây dựng một ứng dụng Android và tôi gặp sự cố để lấy tài nguyên từ tệp string.xml.Không thể lấy tài nguyên từ ứng dụng android

Tôi cần có URL trong String.xml sẽ được sử dụng nhiều lần thông qua ứng dụng.

Tôi đã thử Resources.getText("my_url"), nhưng điều này không hoạt động. Eclipse phàn nàn khi tôi sử dụng nó.

Bạn có nghĩ đây là cách tốt nhất để làm không?

Trả lời

12

Những gì bạn có thể muốn là:

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

Các getString() method is in Context có nghĩa là nó có sẵn trực tiếp trong lớp Activity của bạn vì Activity là một lớp con của Context. (Phương pháp getString() cũng nằm trong Resources nhưng nó dễ dàng hơn để gọi vào nó trực tiếp trên Activity của bạn.)

gì xảy ra với nguồn XML của bạn là mỗi được đưa ra một ID số nguyên duy nhất và điều này sẽ được thêm vào automatically generated R class như một public static final int . Sau đó, bạn sử dụng các ID này để tham chiếu các tài nguyên. Có một cái nhìn trong thư mục gen trong dự án Eclipse của bạn và bạn sẽ tìm thấy lớp học R trong đó.

+0

Cảm ơn, tôi sẽ kiểm tra điều này. Nhưng, nếu tôi muốn nhận được chuỗi này bên ngoài một Activity (trong một helper classe chẳng hạn), tôi có thể sử dụng GetBaseContext(). GetString (key)? – Luc

+2

Tôi không có ý tưởng gì về 'GetBaseContext()' là tôi sợ. Tôi chuyển một 'Context' cho mỗi lớp trợ giúp của tôi để cho phép họ làm những việc như thế này. Tuy nhiên, hãy cẩn thận khi bạn để điều này như thể bạn treo vào một tham chiếu đến bối cảnh bạn có thể bị rò rỉ bộ nhớ khá nặng. http://android-developers.blogspot.com/2009/01/avoiding-memory-leaks.html –

+0

Cảm ơn, đó là một điểm tốt và một bài viết rất hay. Chúc mừng, Luc – Luc

0

Bạn có bao giờ tham khảo trang này: https://developer.android.com/guide/topics/resources/available-resources.html?

Nếu bạn muốn truy xuất Chuỗi được trình bày bằng ID tài nguyên, bạn có thể gọi phương thức Context.getString().

Hoặc bạn phải đăng những lời phàn nàn của Eclipse.

+0

Cảm ơn rất nhiều, đây là những gì tôi đang sử dụng. Trân trọng, Luc – Luc

Các vấn đề liên quan