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 :

Problème Menu contextuel


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut Problème Menu contextuel
    Salut,
    Je n'arrive pas à comprendre pourquoi lorsque je clique sur un item de ma listView, le menu contextuel ne s'affiche pas
    Voiçi 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
    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
    public class Main3 extends ListActivity implements OnClickListener {
     
     
    	FormationBDD formationBdd;
    	Formation liste;
     
    	@Override
    	  public void onCreate(Bundle savedInstanceState) {
    	    super.onCreate(savedInstanceState);
    	    setContentView(R.layout.resultat_list);
    	 // On récupère l'intent qui a lancé cette activité
    	    Intent i = getIntent();
    	    String ville = i.getStringExtra(Main2.VILLE);
    	    String catégorie = i.getStringExtra(Main2.CATEGORIE);
    	    formationBdd = new FormationBDD(this);
    	    formationBdd.open();
    	    liste = formationBdd.getFormation(ville, catégorie); 
    		    if (liste == null)
    		        Toast.makeText(Main3.this, "liste de formation vide ", Toast.LENGTH_LONG).show();
    		        else
    		        	DataBind(ville, catégorie);
    	}
     
        @Override // Création du menu principal
        public boolean onCreateOptionsMenu(Menu menu) {    	
        	menu.add(0,100,0,"Tout effacer");
        	return true;
        }
     
        @Override // Selection d'un item du menu
        public boolean onOptionsItemSelected(MenuItem item) {
        	switch(item.getItemId()){
        	case 100: 
        		//db.Truncate();
        		//DataBind();
        		break;    	
        	}
        	return true;
        }
     
    	@Override // Selection d'un item de la liste
    	protected void onListItemClick(ListView l, View v, int position, long id) {
    		//Cursor cursor = (Cursor)l.getAdapter().getItem(position);
    		//String titre  = cursor.getString(cursor.getColumnIndex("libellé"));
    		//Toast.makeText(this,"Item id "+id+" : "+titre, Toast.LENGTH_SHORT).show();
    		//super.onListItemClick(l, v, position, id);
    	}
     
    	@Override // Creation du menu contextuel
    	public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    		super.onCreateContextMenu(menu, v, menuInfo);
    		menu.setHeaderTitle("Action");
    		menu.add(0,100,0,"Supprimer");
    		menu.add(0,200,1,"Editer");
    	}
     
    	@Override // Selection d'un item du menu contextuel
    	public boolean onContextItemSelected(MenuItem item) {
    		AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
    		switch(item.getItemId()){
    		case 100:
    		//	db.supprimerProduit(info.id);
    			//DataBind();
    			break;
    		case 200:
    			Toast.makeText(this, "TODO", Toast.LENGTH_SHORT).show();				
    			break;			
    		}
    		return true;
    	}
     
        @Override
        protected void onDestroy() {
        //	db.close();
        	super.onDestroy();
        }
     
     
    	 public void DataBind(String ville, String catégorie){
     
    	    	Cursor c = formationBdd.recupererChoixFormations(ville, catégorie);
    	    	startManagingCursor(c);
    	    	SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
    	    	    	R.layout.list1,c,new String[]{"libellé","adresse","tel"},
    	    	    	new int[]{R.id.textLibellé,R.id.TextAdresse,R.id.TextTel});
    	    	    	setListAdapter(adapter);
    	 }
     
    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
     
    	}
    }
    Pouvez vous m'aider? logCat n'affiche aucune erreur.
    Merci

  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,


    http://developer.android.com/guide/t...l#context-menu

    1-
    f your activity uses a ListView or GridView and you want each item to provide the same context menu, register all items for a context menu by passing the ListView or GridView to registerForContextMenu().
    Il faut que tu appelles le registerForContextMenu sur ta liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getListView().registerForContextMenu();

  3. #3
    Membre éclairé Avatar de janyoura
    Femme Profil pro
    étudiante ingénierie informatique
    Inscrit en
    Mars 2012
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante ingénierie informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 365
    Par défaut
    Citation Envoyé par Feanorin Voir le message
    Bonjour,

    Il faut que tu appelles le registerForContextMenu sur ta liste.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getListView().registerForContextMenu();
    Merci pour votre réponse. je dois lui faire appel dans la méthode principale onCreate?

  4. #4
    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
    Oui, fais le le plus tôt possible, à moins que tu veuilles mettre une condition sur l'apparition de ce contexte.

    En gros quand tu appellera le register le menu sera lié.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/05/2012, 07h58
  2. Réponses: 5
    Dernier message: 14/02/2012, 00h19
  3. Problème menu contextuel des dossiers
    Par Somato dans le forum Windows XP
    Réponses: 8
    Dernier message: 26/03/2010, 20h54
  4. Un tout petit problème avec mon menu contextuel
    Par jbrasselet dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 05/10/2007, 15h40

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