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 :
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 peut 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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 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); }
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)
Partager