2011-05-05 1 views
1

Dans mon application, j'utilise des onglets et des paramètres, des onglets, etc. Dans la page des paramètres, il y a un textview avec du texte. Dans la page d'accueil, il y a une tâche asynchrone qui fonctionne en arrière-plan.comment faire référence à la fenêtre en cours de la tâche asynchrone? Android

Maintenant ce que je veux, c'est quand l'utilisateur regarde la page de paramètres, et si la tâche asynchrone de la classe home.java accomplit la méthode doInBackground, je veux mettre à jour la vue de texte dans la page de paramètres.

Comment obtenir la référence de la page textview des paramètres dans la méthode onPostExecute de la tâche asynchrone dans home.class? S'il vous plaît donner quelques indices ou des moyens de mettre en œuvre cette ..

merci ..

Répondre

1

Vous ne devriez pas essayer d'accéder au TextView directement à partir de la méthode onPostExecute() de votre AsyncTask. Au lieu de cela, stockez temporairement la valeur que vous souhaitez définir dans TextView de manière centralisée et récupérez-la à partir de cette page lorsque vous accédez à la page des paramètres.

Pour stocker la valeur, vous pouvez utiliser un mécanisme différent. Si vous n'avez pas besoin de le conserver, vous pouvez utiliser une classe singleton accessible à partir de n'importe où dans votre application. Pour conserver la valeur, vous devez utiliser le shared preferences, un fichier ou une base de données. Pour plus d'informations, consultez this page.

+0

Je veux que la textview soit mise à jour dynamiquement (après l'achèvement de doInBackground) lorsque l'utilisateur est sur la page des paramètres elle-même .. –

+0

Je peux mettre un thread dans la settings.class pour mettre à jour le champ pendant un certain temps. mais je ne voulais pas comme ça .. Je veux accéder à la textview d'une autre classe (home.java) est-ce possible? Quelque chose comme getCurrentFocus etc. –

+0

@manidhar mulaparthi: "Je veux accéder à la textview d'une autre classe (home.java) est-ce possible?" -- ce n'est pas une bonne idée. Veuillez suivre les recommandations fournies par @Flo. – CommonsWare

Questions connexes