2011-04-14 5 views
5

Je suis nouveau pour le développement android, je suis en train d'analyser un fichier XML via l'analyseur SAX et de stocker les données analysées dans une chaîne.Maintenant, je dois utiliser cette chaîne dans une autre classe, donc je dois savoir comment appeler cet analyseur dans la nouvelle classe. merci à l'avanceDéclaration globale de la variable dans android

+0

Utiliser le modificateur 'static' – ernazm

+0

Notez que les données globales sont une mauvaise idée sauf si elles sont constantes. –

+0

Sans connaître votre hiérarchie de classes plus en détail, je me demande ce qui vous empêche d'utiliser la méthode getter de base? – harism

Répondre

9

Je fais toujours une classe qui contient tous mes GLOBALS et l'appeler « Constants.java »

final public class Constants//final to prevent instantiation 
{ 
    public static final String SOME_STRING = "0.04"; 
    public static final int SOME_NUMBER = 5; 
    public static final float METERS_PER_MILE = 1609.344f; 

    //private constructor to prevent instantiation/inheritance 
    private Constants() 
    { 
    } 
} 

à utiliser l'un de ces derniers dans votre code, assurez-vous d'importer la classe et de l'utilisation:

Constants.SOME_NUMBER

+0

Pourquoi n'utilisez-vous pas une interface à la place? – ernazm

+0

car "une interface est un groupe de méthodes associées avec des corps vides" –

+0

Même si "une définition d'interface peut aussi définir des propriétés qui sont automatiquement publiques finales statiques", je considère que le but principal d'une interface est de représenter un corps. –

2

Vous pouvez utiliser une variable statique et peut y accéder où dans l'application

public static int myVar = 1; 

accès par ClassName.myVar

2

Vous pouvez utiliser l'intention d'utiliser la valeur. En outre, vous pouvez utiliser le fichier manifest.xml pour créer une variable gloable.

0

Vous devez utiliser l'objet de l'application pour obtenir une variable globale, vous pouvez voir un exemple de travail ici http://www.helloandroid.com/category/topics-covered/application-object

documentation de la classe d'application est indiqué ici http://developer.android.com/reference/android/app/Application.html

+0

est-ce thread-safe dans les applications multi-thread? –

+0

Je ne suis pas sûr, mais vous pouvez toujours utiliser le mot-clé synchronisé. –

1

En utilisant l'extension de l'application Android n'est pas multiprocessus sûr, comme décrit ici: How to declare global variables in Android? Notez la première réponse. Il définit comment étendre l'application elle-même, mais prend note que cette méthode ne permet pas de conserver l'état global de façon très simple.Si votre application le juge nécessaire, vous devriez utiliser une sorte de magasin, voir les docs Android pour une variété des méthodes. " J'ai également vu d'autres articles qui indiquent que, entre les processus, cette méthode doit être légèrement modifiée, mais je pense que c'est possible. Faites-moi savoir si j'ai mal compris ...