124 votes

À l'aide de getResources() en non-activité de la classe

Je suis un Androïde débutant. Je suis en train d'utiliser getResources méthode dans un non-activité de la classe. Comment puis-je obtenir la référence à la rubrique "ressources" de l'objet afin que je puisse accéder au fichier xml stockés dans dossier de ressources.

Exemple:

XmlPullParser xpp = getResources().getXml(R.xml.samplexml);

156voto

LuckyLuke Points 8241

Vous aurez à passer un context y opposer. Soit this si vous avez une référence à la classe dans une activité, ou d' getApplicationContext()

public class MyActivity extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        RegularClass regularClass = new RegularClass(this);
    }
}

Ensuite, vous pouvez utiliser le constructeur (ou définissez une variable d'instance):

context.getResources().getXml(R.xml.samplexml);

Où le constructeur accepte Context en tant que paramètre

37voto

Jason Crosby Points 879

Ce n'est pas une bonne idée de passer Context objets autour. Souvent conduire à des fuites de mémoire. Ma suggestion est que vous ne le faites pas. J'ai fait de nombreuses applications Android sans avoir à passer contexte de non-activité des classes dans l'application. Une meilleure idée serait d'obtenir les ressources dont vous avez besoin d'accéder à tout votre en Activity ou Fragment, et de le retenir dans une autre classe. Vous pouvez alors utiliser cette classe dans toutes les autres classes de votre application à accéder aux ressources, sans avoir à passer autour de Context objets.

7voto

Kristian Points 2163

Avez-vous accès à l' Context? Ou, plus probablement, vous pouvez obtenir l'accès en getApplicationContext()

3voto

A.R.Asha Points 31

cela peut être fait en utilisant

context.getResources().getXml(R.xml.samplexml);

1voto

Ankit Srivastava Points 143

eh bien pas besoin de passer du contexte et de faire tout ce qui est...il suffit de faire ceci

Context context = parent.getContext();

Edit: où le parent est le ViewGroup

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X