2012-09-13 3 views
1
de ContextMenu
registerForContextMenu(validate_button); 
@Override 
    public void onCreateContextMenu(ContextMenu menu, View v, 
      ContextMenu.ContextMenuInfo menuInfo) { 

     menu.add("It's right"); 
     menu.add("It's wrong"); 
    } 

    @Override 
    public boolean onContextItemSelected(android.view.MenuItem item) { 
     //i want to show another Context Menu to select next answer 
     return true; 
    } 

Comment afficher une autre ContextMenu lorsque je clique sur un élément de la première ContextMenu?.ContextMenu lorsque vous cliquez dessus sur le premier article de

Ses quelque chose comme un interlocuteur vous permet de sélectionner des réponses des ContextMenu éléments, selon le suivant ContextMenu les articles doivent être renseignés

Répondre

4

Comment afficher une autre ContextMenu quand je clique sur un élément du 1er ContextMenu ??

Je ne sais pas à quelle profondeur vous voulez que le ContextMenu être mais pour deux niveaux vous pourriez avoir un drapeau booléen, pour choisir entre les deux cas, qui sera mis à jour à partir onContextItemSelected:

boolean flag = true; 

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
     ContextMenu.ContextMenuInfo menuInfo) { 
    if (flag) { 
     menu.add("It's right"); 
     menu.add("It's wrong"); 
    } else { 
     // the second menu 
     menu.add("Ha Ha"); 
    } 
} 

ensuite dans le rappel onContexItemSelected simplement mettre à jour le drapeau et poster un Runnable pour montrer le nouveau ContextMenu:

@Override 
public boolean onContextItemSelected(MenuItem item) { 
     if (item.getItemId() == theIdOfItemFromSecondContextMenu) { 
     // do stuff 
     return true; 
    } 
    // if you pass at this level, then you need to show the second ContextMenu 
    flag = false; 
    theView.post(new Runnable() { 

     @Override 
     public void run() { 
      theView.showContextMenu(); 
     } 
    }); 
    return true; 
} 

Quoi qu'il en soit, je déconseillerais ce c ode et utilisez simplement un Dialog personnalisé (ou un DialogFragment pour avoir un backstack que l'utilisateur peut parcourir).

+0

dans onContextItemSelected flag = false; droite?? –

+0

@ Archie.bpgc Oui, une simple erreur. – Luksprog

+0

et encore mais quand je clique sur l'élément de 2nd ContextMenu, il déclenchera à nouveau le onContextItemSelected et ouvrira à nouveau le 2ème menu? –

Questions connexes