Bonjour à tous,

Premièrement, je suis tout débutant sur le dev Androïd, il est probable que je n'ai pas compris quelque chose, ou bien que je tente de faire quelque chose qui n'a pas de sens, mais bon... voici mon problème :

Dans une Activity, je souhaiterais pouvoir faire des registerForContextMenu sur deux view, définies dans deux fichiers XML layouts différents.

Code java : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        setContentView(R.layout.mylayout);
        registerForContextMenu(findViewById(R.id.my_textview));
        registerForContextMenu(findViewById(R.id.glop_view));
 
    }

Au lancement ça explose :
10-29 14:25:33.238: ERROR/AndroidRuntime(15444): Uncaught handler: thread main exiting due to uncaught exception
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ebulatik.gukak.MyDroid/com.ebulatik.gukak.MyDroid.MyDroid}: java.lang.NullPointerException
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.os.Handler.dispatchMessage(Handler.java:99)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.os.Looper.loop(Looper.java:123)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.app.ActivityThread.main(ActivityThread.java:4363)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at java.lang.reflect.Method.invokeNative(Native Method)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at java.lang.reflect.Method.invoke(Method.java:521)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:862)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at dalvik.system.NativeStart.main(Native Method)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): Caused by: java.lang.NullPointerException
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.app.Activity.registerForContextMenu(Activity.java:2352)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at com.ebulatik.gukak.MyDroid.MyDroid.onCreate(MyDroid.java:21)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
10-29 14:25:33.278: ERROR/AndroidRuntime(15444): ... 11 more

"my_textview" et "glop_view" sont tous deux des views de type textviews.
Il est à noter que "my_textview" est défini dans le layout "myLayout" (fichier mylayout.xml) alors que glop_view est lui défini dans un autre layout "main" (fichier main.xml).

Si je commente le deuxième registerForContextMenu, tout fonctionne correctement.

J'essaye surement de faire un truc tordu, mais je me demande pourquoi je ne peux pas faire des registerForContextMenu sur des views de différents layouts ?
-> je me dis qu'il peut être intéressant de vouloir faire ce genre de choses par exemple si l'Activity est amenée à afficher différents layouts en fonction des actions de l'utilisateur, et que l'on ait des contextMenu à gérer dans ces différentes views...

Mais peut etre que je n'ai pas du tout le bonne approche ?
Pour info, je faisais juste quelques tests tout en lisant le devguide Android, je ne cherche pas particulièrement à faire quelque chose de précis, juste à comprendre mon erreur

Merci à tous !