Bonjour,
je veux modifier la fonction du bouton menu, en lui attribuant un menu personnalisé.
Bonjour,
je veux modifier la fonction du bouton menu, en lui attribuant un menu personnalisé.
Ouais :
http://developer.android.com/guide/topics/ui/menus.html
Le plus simple c'est de créer un fichier XML dans /res/menu/.
Ensuite dans ton Activity, tu mets :
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 @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_menu, menu); } @Override public boolean onContextItemSelected(MenuItem item) { AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); switch (item.getItemId()) { case R.id.edit: editNote(info.id); return true; case R.id.delete: deleteNote(info.id); return true; default: return super.onContextItemSelected(item); } }
ok, merci
et si je veux que ça soit valable pour toutes les activités de l'application
Tu peux créer une classe qu'extends Activity.
Dedans tu mets toutes les méthodes dont t'as besoin.
Ensuite toutes les Activities de ton application, extends ta nouvelle classe.
Par exemple tu créer une classe :
Dedans tu mets onCreateContextMenu, onContextItemSelected, etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part public class MyActivity extends Activity
Imaginons que t'as Activity1 et ben ça fera :
Code : Sélectionner tout - Visualiser dans une fenêtre à part public class Activity1 extends MyActivity
ça me donne les erreurs suivantes
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 06-20 17:28:37.898: E/AndroidRuntime(473): FATAL EXCEPTION: main 06-20 17:28:37.898: E/AndroidRuntime(473): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{si.lydec.secure/si.lydec.secure.Connexion}: java.lang.NullPointerException 06-20 17:28:37.898: E/AndroidRuntime(473): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.os.Handler.dispatchMessage(Handler.java:99) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.os.Looper.loop(Looper.java:123) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.app.ActivityThread.main(ActivityThread.java:3683) 06-20 17:28:37.898: E/AndroidRuntime(473): at java.lang.reflect.Method.invokeNative(Native Method) 06-20 17:28:37.898: E/AndroidRuntime(473): at java.lang.reflect.Method.invoke(Method.java:507) 06-20 17:28:37.898: E/AndroidRuntime(473): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 06-20 17:28:37.898: E/AndroidRuntime(473): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 06-20 17:28:37.898: E/AndroidRuntime(473): at dalvik.system.NativeStart.main(Native Method) 06-20 17:28:37.898: E/AndroidRuntime(473): Caused by: java.lang.NullPointerException 06-20 17:28:37.898: E/AndroidRuntime(473): at android.content.ContextWrapper.getPackageName(ContextWrapper.java:120) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.content.ComponentName.<init>(ComponentName.java:75) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.content.Intent.<init>(Intent.java:2702) 06-20 17:28:37.898: E/AndroidRuntime(473): at si.lydec.secure.GestionBoutons.<init>(GestionBoutons.java:14) 06-20 17:28:37.898: E/AndroidRuntime(473): at si.lydec.secure.Connexion.<init>(Connexion.java:14) 06-20 17:28:37.898: E/AndroidRuntime(473): at java.lang.Class.newInstanceImpl(Native Method) 06-20 17:28:37.898: E/AndroidRuntime(473): at java.lang.Class.newInstance(Class.java:1409) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 06-20 17:28:37.898: E/AndroidRuntime(473): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561) 06-20 17:28:37.898: E/AndroidRuntime(473): ... 11 more
Qu'est-ce qu'il y a la ligne 14 de GestionBoutons.java ?
Il y a quelque chose de NULL.
T'as créé quoi comme fichier xml dans res/menu/ ?
Partager