Aller au contenu

Utiliser l'instance d'une activité à partir d'une autre classe


Skartt

Recommended Posts

Bonjour, je suis en train d'écrire une application assez conséquente, c'est pourquoi je voudrais gérer mes activités à partir d'une classe centrale, qui pourrait accéder à leurs objets grâce à des instances, Le problème est que je ne sais pas comment faire, ni même si c'est possible.

Voici un code simplifié de ma classe :

public class Central implements ICore, IAlertListener {

    public List<AlertItem> alertList;
    private final AlertActivity alertActivity;

    public Central() {
    alertList = new ArrayList<AlertItem>();
        alertActivity = new AlertActivity();
    }
    public void addAlert(String pTitle) {
        alertList.add(0, new AlertItem(pTitle));

        if (alertActivity.getLvAlert() != null) {
        ((BaseAdapter) alertActivity.getLvAlert().getAdapter())
                .notifyDataSetChanged();
        }
    }
    public void showAlertActivity(Activity pPreviousActivity) {
        Intent intent = new Intent(pPreviousActivity, alertActivity.getClass());
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        pPreviousActivity.startActivity(intent);
    }

Ici, j'essaye de créer une variable alertActivity qui me permettrait de notifier à chaque ajout dans alertList, l'adapteur de la listView LvAlert, dans l'activité en question. Le problème c'est que je ne peux pas écouter les ajouts dans l'activité même, d'où mon besoin de notifier la lv à l'extérieur de l'activité à chaque appel de addAlert.

En apparence, ça marche bien, l'instance de l'activité est acceptée, et quand j'appelle showAlertActivity depuis une autre activité, AlertActivity s'affiche bien. Le problème, c'est que alertActivity.getLvAlert() est toujours égal à null, bien que la liste se remplie en apparence. Je pense donc que mon instance ne sert à rien et que ce n'est pas la bonne façon de faire.

Quel est la méthode idéale pour accéder aux objets de AlertActivity sans utiliser de méthode statique ?

Merci d'avance

PS: cette classe est censée gérer la partie graphique de l'application, et est appelée dans une autre classe qui met en place tous les moteurs du programme (à part cette classe tout est du pur java)

Lien vers le commentaire
Partager sur d’autres sites

Rejoignez la conversation

Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.

Invité
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...