2010-10-28 2 views
2

J'ai bouton, qui affiche un menu contextuel. Dans le menu sont quelques éléments (certains d'entre eux sont désactivés - setEnabled (false)).Quel événement est appelé lorsqu'un utilisateur clique sur l'élément désactivé dans le menu contextuel?

Quel événement est appelé lorsqu'un utilisateur clique sur l'élément désactivé? Ce n'est pas onContextItemSelected ni onContextMenuClosed. Mais le menu est fermé après le clic.

Merci pour votre aide.

+0

Il n'y a probablement pas. Si c'est désactivé, ce n'est pas cliquable. Pourquoi un événement se déclencherait-il? – Falmarri

+0

Je l'ai essayé seulement en émulateur. Mais l'élément désactivé semble être cliquable, au moins le menu disparaît après clic. Donc onContextMenuClosed devrait être déclenché. – branoholy

Répondre

2

Après avoir consulté mon professeur, j'ai résolu le problème. Vous pouvez vérifier le focus de votre fenêtre, puis décider si le menu contextuel a été fermé ou non.

Vous devez donc:

  1. Utilisez le code ci-dessous.
  2. Appelez la méthode onPrepareContextMenu() lorsque vous créez le menu contextuel.

Le code:

public class MyActivity extends android.app.Activity { 

    private boolean contextMenuDisplayed = false; 

    @Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     super.onWindowFocusChanged(hasFocus); 

     if(hasFocus && this.contextMenuDisplayed) { 
      this.contextMenuDisplayed = false; 
      this.onContextMenuClosed(null); 
     } 
    } 

    public void onPrepareContextMenu() { 
     this.contextMenuDisplayed = true; 
    } 

} 
+0

Très apprécié. Cela a résolu mon problème avec l'ouverture de deux menus contextuels à la fois. À votre santé –

Questions connexes