Android BroadcastReceiver onReceive Mise à jour de TextView dans MainActivity
Dans MainActivity j'ai un TextView: textV1. J'ai aussi une méthode dans MainActivity que les mises à jour de textview:
public void updateTheTextView(final String t) {
MainActivity.this.runOnUiThread(new Runnable() {
public void run() {
TextView textV1 = (TextView) findViewById(R.id.textV1);
textV1.setText(t);
}
});
}
Dans un BroadcasrReceiver j'ai besoin de mettre à jour le texte dans textV1 dans MainActivity.
public class NotifAlarm extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//other things done here like notification
//NEED TO UPDATE TEXTV1 IN MAINACTIVITY HERE
}
}
Comment cela peut-il être fait? Le BroadcastReceiver est exécuté à partir d'un service. Ce code je ne peux pas changer. Puis-je accéder et de modifier textV1 dans MainActivity de onReceive()? J'ai essayé beaucoup de choses, mais tous échouent.
source d'informationauteur user3499199
Vous devez vous connecter pour publier un commentaire.
Dans votre
MainActivity
d'initialiser une variable deMainActivity
classe comme ci-dessous.créer une instance de la classe et puis passer la valeur à la fonction que les changements TextView valeur suivez ces étapes s'il vous plaît :
dans votre BroadcastReceiver remplacer la méthode onReceive et collez Ces lignes ou des changements de thème que vous souhaitez
maintenant nous expliquer le updateTheTextView et inst
dans YourActivityToUpdate classe Coller ces Lignes veuillez
et c'est le updateTheTextView méthode qui doit être placée dans YourActivityToUpdate classe
je pense que c'est une meilleure façon grâce à "kevin-lynx"