Bonjour,
J'essaie désespérément de créer et intercepter un événement dans une app android mais c'est sans succès malgré les recherches effectuées.
Avec plus ou moins de complexité, les exemples que j'ai pu trouver ne sont pas suffisamment simplistes pour bien comprendre le mécanisme.
Développeur VB.net habituellement, j'ai plutôt l'habitude de créer des événements de façon intuitive sans me poser de questions.
Je débute en Java et ne suis pas encore très à l'aise avec la philosophie de ce langage.
Pour en revenir à mon souci, j'ai 2 classes :
Une classe MyCustomObject qui est censée faire remonter les events
Et mon Activity qui instancie cette classe qui fait appel à la methode LoadData qui théoriquement, devrait déclencher le mécanisme.
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
24
25
26
27 public class MyCustomObject { public interface MyCustomObjectListener { void onStart(int maxValue); void onLoop(int i); void onEnd(); } private MyCustomObjectListener listener; public MyCustomObject() { this.listener = null; loadDatas(); } public void setCustomObjectListener(MyCustomObjectListener listener) { this.listener = listener; } public void loadDatas() { try { if (listener != null) listener.onStart(1000); for (int i = 0; i < 1000; i++) { if (listener != null) listener.onLoop(i); } if (listener != null) listener.onEnd(); } catch (Exception e) { Log.i("EWWO", e.getMessage()); } } }
Je ne crois pas pouvoir faire plus simple au niveau du code.
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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 public class Activity_Test extends Activity { TextView lblResult; Button btTest; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); lblResult = (TextView) findViewById(R.id.lblResult); btTest = (Button) findViewById(R.id.btTest); btTest.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { try { lblResult.setText(""); MyCustomObject object = new MyCustomObject(); object.setCustomObjectListener(new MyCustomObject.MyCustomObjectListener() { @Override public void onStart(int maxValue) { lblResult.setText("maxValue = " + maxValue); } @Override public void onLoop(int i) { lblResult.setText("En traitement " + i); } @Override public void onEnd() { lblResult.setText("Terminé"); } }); } catch (Exception e) { Log.i("EWOO", e.getMessage()); } } }); } }
Impossible d'accéder aux événements lors du debug.
Merci de votre aide
Partager