|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Bonjour à tous,
ça va faire 2 jours que je cherche mais sans réel succès. Mon but est d'essayer de mettre à jour une TextView à partir d'une autre classe. Dans mon projet, j'ai 2 fichiers : le fichier principal contenant la fonction onCreate() et le second fichier est un fichier Log. Toutes les fonctions de mon fichier Log sont "static". A partir de la fonction onCreate, j'appelle par exemple "Log.Info("Bonsoir !");" Ma classe Log va écrire dans un fichier "[INFO]: Bonsoir !". Jusque là, pas de problème, mais j'aimerai que lorsque le programme écrit dans le fichier .log suite aux appels de Log.*, il y ait une mise à jour sur l'interface graphique du téléphone, plus particulièrement dans la TextView. Pour que l'on s'y retrouve mieux, voici la partie du code onCreate (la seule fonction de mon 1er fichier) : Code :
Code :
Code :
Je vous remercie d'avance pour votre aide, Bonsoir ! |
||||||
|
|
00
|
|
|
#2 | ||||
![]() ![]() |
Un petit probleme de conception ?
Tu as deux "objets" (même n'a que des fonctions statiques) qui doivent communiquer entre eux: l'activité doit pouvoir appeler Log, et Log doit pouvoir appeler l'activité (le TextView)... Il y a plusieurs possibilités: 1. Créer un objet "Log" qui peut prendre un text-view en paramètre, et le déclarer comme "currentLog". Exemple: Code :
Code :
Un objet "Logger" qui va te permettre de logger les évenements, (fonctions info, warn, ...) et de maintenir une liste de "LogOutput" (interface prenant en paramètres toutes les informations du logger). On peut avoir 3 implémentations de LogOutput: * TextViewOutput (qui prend un TextView, et le met à jour) * FileLogOutput (qui écrit dans un fichier) * AndroidLogOutput (qui utilise le systeme fourni avec Android pour les logs). NB: La règle en Java: Une majuscule en début d'identifiant dénote un TYPE (une classe, enum, etc...) jamais une fonction ou une variable. Les fonctions devraient donc être "info" (et non Info) et "write" (et non Write) |
||||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : août 2011 Messages : 7 ![]() |
Merci de ta réponse nicroman !
J'ai testé la solution n°1 car je compte bien garder ma classe "Log". Malheureusement, dû à une incompréhension de ma part, je n'arrive pas à comprendre ce que fait ton code. En plus, les appels à la classe Log ne se limitent pas à la classe "TestActivity" mais Log peut aussi être appelé depuis d'autres classes et c'est pour cela que je recherche absolument à pouvoir mettre à jour ma TextView depuis la classe Log. J'ai tout de même continué à rechercher de mon côté et j'ai besoin d'une précision : j'ai créé une fonction insertMessage (String Message) dans ma classe principale. Je l'ai appelé depuis onCreate mais rien à faire, impossible de mettre à jour la TextView. Voici le code d'insertMessage : Code :
Après, j'ai aussi lu que certains se servaient de AsynkTask. Est-ce valable pour ce que je souhaite faire ? Merci d'avance pour vos réponses. Bonne soirée. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com