2011-04-15 1 views
0

J'ai une activité qui a une méthode statique pour mettre à jour un textfield. De cette façon, je peux mettre à jour cette vue à partir d'une autre activité.Activité d'accès d'une manière statique

Mais maintenant j'essaye d'obtenir une variable de contexte dans cette méthode statique qui n'est pas possible. J'ai essayé de déclarer une variable Context et de l'initialiser en onCreate ( context = getApplicationContext();)

Mais je n'arrive toujours pas à accéder au contexte dans cette méthode statique. Comment cela se fait-il normalement?

edit: un peu plus d'informations sur ma situation. Je commence un countdowntimer dans une activité (a) qui met à jour le (0) textfield d'une autre activité chaque seconde. Et il le fait en accédant à la setTextField b de façon statique ..

Répondre

3

Comment cela fait normalement ?

L'accès à TextView via une méthode statique n'est pas le meilleur moyen de mettre à jour le champ à partir d'une autre activité. Si vous voulez transmettre une valeur à l'activité au démarrage, vous pouvez envoyer des données via l'intention (c'est-à-dire intent.getExtras). Si vous souhaitez renvoyer des données d'une sous-activité, vous pouvez utiliser startActivityForResult.

1

La façon dont vous allez est très étrange. Pourquoi essayez-vous de changer un contenu d'activité d'un autre? Peut-être avez-vous besoin d'utiliser startActivityForResult pour lancer une nouvelle activité, puis retourner le résultat et modifier les vues en fonction?

0

Vous pouvez vérifier la documentation sur OO et utiliser des fonctions statiques. Ce n'est pas considéré comme une très bonne approche.

Mais comme nous ne parlons pas d'un meilleur complet sollution: vous pouvez ajouter un paramètre dans un contexte à la fonction, et juste lui donner lorsque vous appelez la fonction :)

0

Chaque fois que vous êtes occupé avec l'activité A, il n'y a pas de point à mettre à jour quelque chose sur l'activité B car il est tout simplement pas montré à l'utilisateur à ce moment temps.

Il me semble que vous devez avoir une sorte de variable globale ici qui peut être repris dans le onResume de l'activité B.

Commander cette question: How to declare global variables in Android?

Il vous montre comment utiliser l'application classe pour maintenir l'état global de l'application, accessible depuis toutes les activités si nécessaire.

Questions connexes