IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

Menu contextuel et Menu d'options


Sujet :

Composants graphiques Android

  1. #1
    Invité
    Invité(e)
    Par défaut Menu contextuel et Menu d'options
    Salut à tous,

    Alors volà j'ai un programme avec deux activity, j'ai crée le même menu d'option pout les deux activité. Et j'ai crée un menu contextuel sur ma première activité que s'affiche lorsque je clique sur un item de ma listview.. enfin ça c'est la théorie.

    Mon problème c'est que je voulais afficher ma deuxième activité avec un OnLongClick sur ma listview (ça ça marche), et le menu contextuel avec un OnClick (donc un click court) et le problème et là ... de plus lorsque j'effectue le clic long, j'ai bien ma deuxième activité qui se lance, mais aussi le menu contextuel, cependant j'ai juste le temps de l'apparcevoir et de passer dans ma nouvelle activité. Gràce à un retour en arrière je reviens sur ma première activité et vois mon menu contextuel affiché.
    Ce n'est donc pas trés pratique même si cela montre qu'il n'y a pas d'erreur dans mon code.

    Je me suis donc dit je vais inversé et lancer ma 2éme activity sur un clic court et le menu contextuel sur un clic long .... ma 2éme activité se lance toujours aussi bien, par contre pas de menu contextuel.

    j'ai lu sur d'autre forum que le fait d'avoir un menu d'option empécher l'apparition de mon menu contextuel est-ce vrai?
    La solution proposé était de mettre tous les "case" dans un seul "switch" mais comment faire?

    voici les codes de mes deux menus:

    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
     
       /**-----------------------------Barre de Menu----------------------------*/
     
        public boolean onCreateOptionsMenu(Menu menu) 
        {
           super.onCreateOptionsMenu(menu);
           MenuInflater inflater = new MenuInflater(this);
           inflater = getMenuInflater();
           inflater.inflate(R.menu.menu, menu);
           return true;
        }
         public boolean onOptionsItemSelected(MenuItem item) {
             switch (item.getItemId()) {
                 case R.id.ack:Toast.makeText(this, "select an alarm", Toast.LENGTH_LONG).show();
                                     break;
     
                 case R.id.ackall:Toast.makeText(this, "Acknowledge all alarms", Toast.LENGTH_LONG).show(); 
                 ListView list = (ListView)findViewById(R.id.listalarme);
                 AlarmeAdapter adapter = (AlarmeAdapter)list.getAdapter();
                 adapter.setEtat(AlarmeAdapter.ACKKED);
                 list.invalidateViews();
                                  break;
     
                 case R.id.reset:Toast.makeText(this, "Select an alarm", Toast.LENGTH_LONG).show();
                                     break;
                 case R.id.resetall:Toast.makeText(this, "Reset all alarms", Toast.LENGTH_LONG).show(); 
                 					 break;    
                 case R.id.update:Toast.makeText(this, " alarms update", Toast.LENGTH_LONG).show();          					 break;     
             }
             return true;
         }
     
        /**---------------------------------menu contextuel-----------------------------------------*/
         public void onCreateContextMenu(ContextMenu menu_item,View v,ContextMenuInfo menuInfo) 
         {
            super.onCreateContextMenu(menu_item, v, menuInfo);
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.menu_itemlist, menu_item);
     
         }
     
         public boolean onContextItemSelected(MenuItem item){
     
             switch (item.getItemId()) {
             case R.id.ack_item:
                 Toast.makeText(this, "ack this item", Toast.LENGTH_SHORT).show();
                 return true;
                case R.id.reset_item:
                    Toast.makeText(this, "reset this item", Toast.LENGTH_SHORT).show();
                    return true;
             	}
             return super.onContextItemSelected(item);
             }
    }
    Pour lancer mon menu contextuel avec un clic court j'ai tente le code suivant, mais ça n'a pas l'air de marcher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	public void OnClick(ListAlarme item, int position) 
    	{
    		// TODO Auto-generated method stub
            registerForContextMenu((ListView)findViewById(R.id.listalarme));
            openContextMenu((ListView)findViewById(R.id.listalarme));
     
    	}
    Si quelqu'un a une idée du problème et par la même occasion d'une solution? Merci =)
    Dernière modification par Invité ; 01/06/2011 à 15h53.

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Que retournais tu dans la procédure onLongClick ?
    public abstract boolean onLongClick (View v)
    Since: API Level 1

    Called when a view has been clicked and held.
    Parameters
    v The view that was clicked and held.
    Returns

    * true if the callback consumed the long click, false otherwise.
    Il faut dans ton cas retourner true;
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  3. #3
    Invité
    Invité(e)
    Par défaut
    voici le 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
     
        public void onLongClick(ListAlarme item, int position) {
     
        	String idalr = ListAlarme.getAListOfAlarms().get(position).idAlarme;
        	String typealr = ListAlarme.getAListOfAlarms().get(position).typeAlarme;
        	int genrealr = ListAlarme.getAListOfAlarms().get(position).genre;
     
          	Intent intenalr1 = new Intent();
        	intenalr1.putExtra("id", idalr); 
        	intenalr1.putExtra("type", typealr); 
        	intenalr1.putExtra("genre", genrealr); 
        	intenalr1.putExtra("Position", position);
        	intenalr1.setClass(this, DetailAlarm.class);
    	    startActivity(intenalr1); 
       }
    Mais sur le onLongClick je lance ma deuxième activity.

    Le plus étranger c'est que la deuxième acitity et le menu contextuel se lance en même temps sur le clic long :s

    Je vais encore essayer d'inverser les clic.

  4. #4
    Invité
    Invité(e)
    Par défaut
    J'ai de plus mis en log sur mon clic court et mon programme le détecte bien, mais il ne lance pas le menu pour autant.

    Et si j'inverse mon OnClick et OnLongClick, alors mon menu et mon 2ème activité se lance sur le clic court et il ne se passe rien sur le long bien que mon programme le détecte ...

    Voici le code dans mon adapter :

    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
     
    			layoutItem.setOnClickListener(new OnClickListener(){
     
    				@Override
    				public void onClick(View v) {
    					Integer position = (Integer)v.getTag();
    					sendListener(mListA.get(position), position);
    					return;
    				}
     
    			});
    			layoutItem.setOnLongClickListener(new OnLongClickListener(){
     
    				@Override
    				public boolean onLongClick(View v) {
    					System.out.println("click long");
    					return true;
    				}
     
    			});

  5. #5
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Essaye plutôt avec cette fonction

    public abstract boolean onItemLongClick (AdapterView<?> parent, View view, int position, long id)
    Since: API Level 1

    Callback method to be invoked when an item in this view has been clicked and held. Implementers can call getItemAtPosition(position) if they need to access the data associated with the selected item.
    Parameters
    parent The AbsListView where the click happened
    view The view within the AbsListView that was clicked
    position The position of the view in the list
    id The row id of the item that was clicked
    Returns

    * true if the callback consumed the long click, false otherwise
    et retourne true


    http://developer.android.com/referen...kListener.html

    Edit , cette fonction s'applique directement à la liste .

    donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    list.setOnItemLongClickListener(new OnItemLongClickListener() {
     
    				@Override
    				public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
    						int arg2, long arg3) {
    					// TODO Auto-generated method stub
    					return true;
    				}
    			});
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  6. #6
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Je met bien cette fonction dans ma classe adapter? dans la méthode getView ou en dehors? parce que dans les deux cas j'ai des erreurs et je ne suis pas sure de l'endroit qui convient
    Non dans ton activity lors de l'initialisation de ta liste . (enfin juste après c'est plus propre)

    Elle n'a rien à faire dans l'adapter .

    D'ailleurs en passant, tu essayes d'intercepter un évènements (click long sur tes items de ta liste .

    Tu implémentais donc chaque éléments par cette interception d'évènements. Cela est plus propre de le faire directement à la source qui est donc sur la liste , tu n'auras donc pas besoin de surcharger chaque item lors d'un GetView mais c'est la liste elle-même qui le fera .

    Par contre , petit détails en plus il faut autoriser les click long sur ta liste si ce n'est pas fait. ( par défault je crois que c'est le cas mais je n'en suis plus sûr ).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.setLongClickable (true);
    http://developer.android.com/referen...e%28boolean%29
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  7. #7
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Non lis attentivement le post juste après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ListView list = getListView();
    // adapter
    list.setAdapter(new Adapter(this));  
    //
    maintenant les évènement 
    list.setOnItemLongClickListener(new OnItemLongClickListener() {
     
    				@Override
    				public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
    						int arg2, long arg3) {
    					// TODO Auto-generated method stub
    					return true;
    				}
    			});
    .D'avant d'ailleurs du pourrais déplacer cet évènements sur la liste aussi via cette fonction :

    http://developer.android.com/referen...kListener.html
    public abstract void onItemClick (AdapterView<?> parent, View view, int position, long id)
    Since: API Level 1

    Callback method to be invoked when an item in this AdapterView has been clicked.

    Implementers can call getItemAtPosition(position) if they need to access the data associated with the selected item.
    Parameters
    parent The AdapterView where the click happened.
    view The view within the AdapterView that was clicked (this will be a view provided by the adapter)
    position The position of the view in the adapter.
    id The row id of the item that was clicked.

    donc tu aurais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    list.setOnItemClickListener(new OnItemClickListener() {
     
    				@Override
    				public void onItemClick(AdapterView<?> arg0, View arg1,
    						int arg2, long arg3) {
    					// TODO Auto-generated method stub
    				}
    			});
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bon ça ne me met plus les deux actions en même temps ... en fait je n'affiche plus le menu contextuel ^^

    mais je pense savoir d'où vient l'erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    		list.setOnItemLongClickListener(new OnItemLongClickListener() {
     
    			@Override
    			public boolean onItemLongClick(AdapterView<?> arg0, View v,
    					int arg2, long arg3) {
    				// TODO Auto-generated method stub
    		        registerForContextMenu((ListView)findViewById(R.id.listalarme));
    		        openContextMenu((ListView)findViewById(R.id.listalarme));
    				return false;
    			}
    		});
    Que dois-je mettre à la place des différents arg? et du <?> ?


    --Edit--

    J'avais pas lu ton dernier post

    j'ai donc mis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    public boolean onItemLongClick(AdapterView<?> AlarmeAdapter, View v, int position, long id)
    Mais ça n'affiche toujours pas mon menu...

  9. #9
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Que dois-je mettre à la place des différents arg? et du <?> ?
    Tu peux laisser comme cela normalement ça doit marcher .

    Maintenant est ce que tu as bien autoriser les click long sur ta liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list.setLongClickable (true);
    Edit : retourne true sur ton onItemLongClick sinon il ne sera pas consumer .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Oui j'ai autorisé les click long,

    Mais est-ce que j'ai bien mis ce qu'il fallait à l'intérieur du listener :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    		        registerForContextMenu((ListView)findViewById(R.id.listalarme));
    		        openContextMenu((ListView)findViewById(R.id.listalarme));
    J'ai suivi les infos d'un tuto mais peut-être que mon cas est un peu différent ...

  11. #11
    Invité
    Invité(e)
    Par défaut
    Le return true n'a rien changé.

    Par contre je remarque que clic long ou court ma 2éme activité se lance à chaque fois c'est normal?

  12. #12
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Tu peux le faire autrement au fait :

    Tu auras un tuto à ce sujet :
    Il faut juste placer le register sur la liste , ensuite il se créera tout seul su un appuie long .

    http://www.mikeplate.com/2010/01/21/...roid-listview/


    Sinon pour l'openContextMenu, essaye comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @Override
    			public boolean onItemLongClick(AdapterView<?> arg0, View v,
    					int arg2, long arg3) {
    				// TODO Auto-generated method stub
    		        registerForContextMenu(v);
    		        openContextMenu(v);
    				return false;
    			}
    Ca me semble plus logique .


    Edit :
    Le return true n'a rien changé.

    Par contre je remarque que clic long ou court ma 2éme activité se lance à chaque fois c'est normal?
    Le return true était fait pour ça pour consumer l'évènement et ne pas avoir le onClick qui se lance . Si tu mets false tu signales que tu permets que d'autres listener intercepte l'évènements d'où le lancement sur le OnClick si tu retournes true tu garde l'évènements.
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Le return true était fait pour ça pour consumer l'évènement et ne pas avoir le onClick qui se lance . Si tu mets false tu signales que tu permets que d'autres listener intercepte l'évènements d'où le lancement sur le OnClick si tu retournes true tu garde l'évènements.
    Ma 2éme activité se lance quand même avec un long clic ou un court.

    J'ai lu le tuto et j'ai essayé de faire comme lui en l'adaptant à mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
         @Override
         public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
           if (v.getId()==R.id.listalarme) {
             AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo;
             menu.setHeaderTitle(Alarmes[info.position]);
             String[] menuItems = getResources().getStringArray(R.menu.menu_itemlist);
             for (int i = 0; i<menuItems.length; i++) {
               menu.add(Menu.NONE, i, i, menuItems[i]);
             }
           }
         }
    Cependant je reste avec le même problème, et en changeant l'openContextMenu comme tu m'a conseillé aussi :s
    (J'ai aussi essayer de faire un mix des deux ... mais ça ne fait rien non plus)

  14. #14
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Ma 2éme activité se lance quand même avec un long clic ou un court.
    J'ai testé chez moi , et si je retourne true dans le onItemLongClick je n'ai pas le click court qui se lance ....

    Cependant je reste avec le même problème, et en changeant l'openContextMenu comme tu m'a conseillé aussi :s
    (J'ai aussi essayer de faire un mix des deux ... mais ça ne fait rien non plus)
    Essaye de voir si déjà tu rentres dans le onCreateContextMenu lors de l'appel de l'openContextMenu (Log ou debug).

    Reviens vers ce code pour tes test:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     registerForContextMenu((ListView)findViewById(R.id.listalarme));
    	        openContextMenu((ListView)findViewById(R.id.listalarme));
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  15. #15
    Invité
    Invité(e)
    Par défaut
    J'ai testé chez moi , et si je retourne true dans le onItemLongClick je n'ai pas le click court qui se lance ....
    En fait j'avais remis le changement d'activité sur un OnClick, mais si je le met sur un OnLongClick je n'ai plus le problème et sur un click court je n'ai rien qui se lance =)


    Essaye de voir si déjà tu rentres dans le onCreateContextMenu lors de l'appel de l'openContextMenu (Log ou debug).
    Non je n'y rentre pas quand je clique sur un item

  16. #16
    Invité
    Invité(e)
    Par défaut
    Mais je croyais que le code que j'était un train de faire (enfin que tu me conseil de faire ^^) c'était pour lancer le menu contextuel sur un clic long, si c'est bien le cas il faut que je remette ma 2éme activité sur un clic court non?
    Et si ce n'est pas le cas, alors ça signifie qu'il faudra lancer le menu contextuel avec un clic court, ce serait parfait si ça marchait =)

  17. #17
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Mais je croyais que le code que j'était un train de faire (enfin que tu me conseil de faire ^^) c'était pour lancer le menu contextuel sur un clic long, si c'est bien le cas il faut que je remette ma 2éme activité sur un clic court non?
    Et si ce n'est pas le cas, alors ça signifie qu'il faudra lancer le menu contextuel avec un clic court, ce serait parfait si ça marchait =)
    Alors là tu fais ce que tu veux.

    Le tutoriel que je t'ai proposé fais que le context est obligatoirement sur le click long .

    Par contre ce que je t'ai montré comme code fait que tu mets ce que tu veux dans le click long et court à toi de décider .

    Tout dépends du code que tu mets dans les différents listener.

    Par contre pour le listener essaye avec cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    registerForContextMenu(v);
    v.showContextMenu();
    Tu prends soit la variable v que te donne la procédure onItemLongClick soit tu récupères la view de ta liste , comme tu veux .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

  18. #18
    Invité
    Invité(e)
    Par défaut
    j'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		list.setOnItemLongClickListener(new OnItemLongClickListener() 
    		{
     
    			@Override
    			public boolean onItemLongClick(AdapterView<?> AlarmeAdapter, View v,int position, long id) 
    			{
    		        registerForContextMenu(v);
    		        v.showContextMenu();
    				return true;
    			}
    		});
    et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		list.setOnItemClickListener(new OnItemClickListener() 
    		{
     
    			@Override
    			public boolean onItemClick(AdapterView<?> AlarmeAdapter, View v,int position, long id) 
    			{
    		        registerForContextMenu(v);
    		        v.showContextMenu();
    				return true;
    			}
    		});
    ça ne marche toujours pas.

    Ce que je ne comprend pas c'est que maintenant je n'affiche même plus le menu contextuel alors qu'avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	public void OnClick(ListAlarme item, int position) 
    	{
    		// TODO Auto-generated method stub
            registerForContextMenu((ListView)findViewById(R.id.listalarme));
            openContextMenu((ListView)findViewById(R.id.listalarme));
     
    	}
    je l'affichait mais en même temps que ma deuxième activité, ce que je ne souhaitais pas mais c'est toujours mieux que de ne rien afficher

    --EDIT--

    D'ailleur que je met un log sur le OnItemLongClick je vois qu'on ne rentre jamais dedans ... avec OnItemClick de même.
    Dernière modification par Invité ; 01/06/2011 à 18h01.

  19. #19
    Invité
    Invité(e)
    Par défaut
    T'es sur que le problème ne vient pas d'un "conflit" entre le menu contextuel et le menu d'option?

    c'est le tuto que j'ai suivi pour les menu : http://www.ace-art.fr/wordpress/2010...nu-de-ce-soir/

    et dans les commentaires certains parle de problème d'affiche de menu contextuel avec des menu d'option, mais je ne suis pas sure d'avoir bien compris comment appliqué les solutions qu'ils proposer =)

  20. #20
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    T'es sur que le problème ne vient pas d'un "conflit" entre le menu contextuel et le menu d'option?
    Non je n'en suis pas sûr du tout . Si tu penses que cela peut provenir de là alors essaye en debug ou avec des log(un peu partout) pour voir le comportement de l'application.

    T'as pas un warning car dans le lien que tu as mis , il parle juste que l'interception de l'évènement ne se fait pas et non l'affichage.
    Mais s'il le faut cela peut provenir de là aussi .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Ajouter un menu et sous menu suite au menu popup Profile As
    Par kkt8 dans le forum Eclipse Platform
    Réponses: 7
    Dernier message: 12/04/2013, 15h57
  2. Sous-menu via le menu contextuel
    Par foolib dans le forum Windows 7
    Réponses: 8
    Dernier message: 13/07/2010, 19h01
  3. Créer un sous menu dans le menu contextuel clique droit
    Par koKoTis dans le forum Windows XP
    Réponses: 1
    Dernier message: 11/10/2007, 13h17
  4. Supprimer option menu contextuel
    Par flo_flo dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/05/2007, 18h59
  5. [Plugin] Ajouter une option au menu contextuel ?
    Par relivio dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 22/03/2004, 17h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo