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 :

Un menu contextuel pour chaque bouton


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Par défaut Un menu contextuel pour chaque bouton
    Bonjour,
    Voila je suis débutant dans la programmation et surtout la programmation Android, dans mon petit exercice j'ai créé 2 boutons , j'ai voulais que chaque bouton affiche un menu contextuel propre à lui . mon problème c'est que quand j’appuie sur le premier bouton il m'affiche tous les items (ceux que j'ai voulu qu'il s'affiche en appuyant sur lui (item1 et item2) et ceux que j'ai voulu en appuyant sur l'autre bouton (item3 et item4)) de même pour l'autre bouton!! pourtant j'ai créé 2 fichier XML , un fichier pour chaque menu contextuel est ce que quelqu’un peut m'aider ?? voici l'extrait 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
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    Button button1;
    Button button2;
    protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);
       button1= (Button) findViewById(R.id.button1); 
       button2= (Button) findViewById(R.id.button2); 
     
     
       button1.setOnClickListener(new Button.OnClickListener(){      	
     
    			@Override
    			public void onClick(View arg0) {
     
    				registerForContextMenu(arg0);
    				openContextMenu(arg0);		
     
    			}
     
            });  
     
    	button2.setOnClickListener(new Button.OnClickListener(){      	
     
    			@Override
    			public void onClick(View arg0) {
     
    				registerForContextMenu(arg0);
    				openContextMenu(arg0);		
     
    			}
     
            });  
     
    }
     
    @Override
     
    	public boolean onContextItemSelected(MenuItem item) {
     
    	// On récupère l'id de l'item et on le compare
     
    	switch (item.getItemId()) {		
     
    	case R.id.item1:
     
    	// On affiche un message
     
    	Toast.makeText(this, "Item1 ", Toast.LENGTH_SHORT).show();
     
    		return true;		
     
    	case R.id.item2:
     
    	// On affiche un message
     
    	Toast.makeText(this, "Item2 ", Toast.LENGTH_SHORT).show();
     
    	      return true;
     
    	case R.id.item3:
     
    	// On affiche un message
     
    	Toast.makeText(this, "Item 3", Toast.LENGTH_SHORT).show();
     
    		return true;		
     
    	case R.id.item4:
     
    	// On affiche un message
     
    	Toast.makeText(this, "Item 4", Toast.LENGTH_SHORT).show();
     
    		return true;
     
     
    	}
     
    		return super.onContextItemSelected(item);
     
    }
     
     
    @Override
     
    	    public void onCreateContextMenu(ContextMenu menu, View v,
     
    	    ContextMenuInfo menuInfo) {	
     
     
    	    	super.onCreateContextMenu(menu, v, menuInfo);
     
    		    MenuInflater inflater = getMenuInflater();
     
    		    inflater.inflate(R.menu.menucontextuel1, menu);	   	
     
     
    		    inflater.inflate(R.menu.menucontextuel2, menu);
     
     
    	    }
    Voila j'espère qu'une bonne âme m'aideras

  2. #2
    Expert confirmé

    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
    Par défaut
    Bonjour,

    Il faut que dans la procédure onCreateContextMenu tu filtres par view, du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public void onCreateContextMenu(ContextMenu menu, View v,
     
    	    ContextMenuInfo menuInfo) {	
     
    	    	super.onCreateContextMenu(menu, v, menuInfo);
     
    		    MenuInflater inflater = getMenuInflater();
     
                        if (v == View1)
                                inflater.inflate(R.menu.menucontextuel1, menu);	   	
                        else if ( v == View2)
               		    inflater.inflate(R.menu.menucontextuel2, menu);
                 }

Discussions similaires

  1. Menu contextuel pour QTreeView
    Par snake0a dans le forum Qt
    Réponses: 1
    Dernier message: 28/12/2009, 14h10
  2. Réponses: 1
    Dernier message: 25/08/2009, 14h34
  3. Réponses: 3
    Dernier message: 19/03/2009, 14h59
  4. Menu contextuel pour une cellule donnée et non l'ensemble
    Par roudy78 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/07/2007, 14h44
  5. faire un menu contextuel pour données issue d'1 table
    Par electrosat03 dans le forum Access
    Réponses: 2
    Dernier message: 27/02/2006, 19h41

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