Bonjour, j'ai un bug récurrent. Mon appli plante lorsque je veux accéder au menu suivant et je ne comprend pas pourquoi.
En cliquant sur le bouton lancement je devrais accéder à la classe menutest. L'autre bouton renvoyant à une autre classe sans que je ne vois un quelconque problème.
Peut être ais je mal établi le manifest ...
Voici mon code :
Voila la classe de départ :
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 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.aviy.memory" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="false"> <activity android:name=".Menudepart" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Menutest"></activity> <activity android:name=".Score"></activity> <activity android:name=".Jeu"></activity> <activity android:name=".Jeu1"></activity> <activity android:name=".Jeu2"></activity> </application> <uses-sdk android:minSdkVersion="2" /> </manifest>
et la classe qui devrait être appelé :
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69 package com.aviy.memory; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; public class Menudepart extends Activity implements OnClickListener { Button lancement = null; Button score=null; /** Called when the activity is first created. **/ @Override public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater =getMenuInflater(); inflater.inflate(R.menu.monmenu, menu); return true; } public boolean onMenuItemSelected(int featureId,MenuItem item){ switch (item.getItemId()){ case R.id.Regles: Toast.makeText(this,"Sélectionnez un niveau de difficulté",Toast.LENGTH_SHORT).show(); return true; case R.id.Quitter: finish(); return true; case R.id.Auteur: Toast.makeText(this,"EcoCO2",Toast.LENGTH_SHORT).show(); } return super.onMenuItemSelected(featureId, item); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.menudepart); lancement=(Button)findViewById(R.id.button1); lancement.setOnClickListener(this); score=(Button)findViewById(R.id.button2); score.setOnClickListener(this); } @Override public void onClick(View v){ if(v==lancement){ Intent monIntent=new Intent(this,Menutest.class); startActivity(monIntent); } if(v==score){ Intent monIntent=new Intent(this,Score.class); startActivity(monIntent); } } }
En sachant que si je demande à la classe menutest d'être en "launcher" je n'ai plus de bug.
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81 package com.aviy.memory; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.Toast; //allez voir dans le manifest pour l'ordre d'affichage des layout //menu de base de l'application public class Menutest extends Activity implements OnClickListener { Button Facile = null; Button Moyen=null; Button Difficile=null; /** Called when the activity is first created. **/ @Override public boolean onCreateOptionsMenu(Menu menu){ MenuInflater inflater =getMenuInflater(); inflater.inflate(R.menu.monmenu, menu); return true; } public boolean onMenuItemSelected(int featureId,MenuItem item){ switch (item.getItemId()){ case R.id.Regles: Toast.makeText(this,"Sélectionnez un niveau de difficulté",Toast.LENGTH_SHORT).show(); return true; case R.id.Quitter: finish(); return true; case R.id.Auteur: Toast.makeText(this,"EcoCO2",Toast.LENGTH_SHORT).show(); } return super.onMenuItemSelected(featureId, item); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.typejeu); Facile=(Button)findViewById(R.id.button1); Facile.setOnClickListener(this); Moyen=(Button)findViewById(R.id.button2); Moyen.setOnClickListener(this); Difficile=(Button)findViewById(R.id.button3); Difficile.setOnClickListener(this); } @Override public void onClick(View v){ if(v==Facile){ Intent monIntent=new Intent(this,Jeu1.class); startActivity(monIntent); } if(v==Moyen){ Intent monIntent=new Intent(this,Jeu2.class); startActivity(monIntent); } if(v==Difficile){ Intent monIntent=new Intent(this,Jeu.class); startActivity(monIntent); } } }
Partager