2015-07-21 1 views
0

alerte, je suis en train de gonfler un menu à partir d'un alterdialog, donc lorsque l'utilisateur clique sur le bouton, le code dans le menu gonfle,Menu Gonflement de dialogue

alert.setTitle("Name"); //Set Alert dialog title here 

     LinearLayout ll = new LinearLayout(this); 
     ll.setOrientation(LinearLayout.VERTICAL); 
     final EditText input = new EditText(this); 
     final Button pencolor = new Button(this);  
     pencolor.setText("Select Pen Color"); 
     pencolor.setPadding(0, 30, 0, 30); 
     registerForContextMenu(pencolor); 

     ll.addView(input); ll.addView(pencolor); 
     alert.setView(ll); 
     alter.create(); 
     alert.show(); 

Et voici le code pour créer le contexte Menu

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
         ContextMenu.ContextMenuInfo menuInfo) { 

      getMenuInflater().inflate(R.menu.color_menu, menu); 
      menu.setHeaderTitle("Pick a color"); 


} 

Et voici le fichier color_menu.xml

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/menu_red" android:title="Red" /> 
    <item android:id="@+id/menu_green" android:title="Green"/> 
    <item android:id="@+id/menu_blue" android:title="Blue"/> 
</menu> 

le alterdialog montre, mais quand je clique o n le bouton ne se passe rien. Toute aide sera appréciée.

Répondre

0

Vous gonflez votre menu contextuel, mais vous devez également définir l'action de chaque bouton. Ajoutez la méthode suivante à votre activité (n'oubliez pas de changer l'action de chaque clic, puisqu'il s'agit juste d'un exemple):

public boolean onContextItemSelected(MenuItem item) { 
    if (item.getTitle().equals("Red")) { 
     Toast.makeText(this, "Action 1 invoked", Toast.LENGTH_SHORT).show(); 
    } else if (item.getTitle().equals("Green")) { 
     Toast.makeText(this, "Action 2 invoked", Toast.LENGTH_SHORT).show(); 
    } else (item.getTitle().equals("Blue")) { 
     Toast.makeText(this, "Action 3 invoked", Toast.LENGTH_SHORT).show(); 
    } 

    return super.onContextItemSelected(item); 
} 
+0

Merci pour votre aide @Rodolfo Perottoni. Mais cela n'a pas réglé le problème. Une autre chose étrange est que si je clique et maintenez sur le bouton le menu apparaît mais pas quand je clique! – user1512681

+0

@ user1512681 cela devrait fonctionner. 'onContextItemSelected' est la méthode utilisée pour définir les actions des clics du menu contextuel. Période. Voyez s'il y a un problème avec votre code. De plus, j'ai mis à jour le code pour détecter le bouton sur lequel vous avez cliqué par son titre. –