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 :

Context menu et listview impossible de récupérer la position de l'item de la listView cliqué


Sujet :

Composants graphiques Android

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Context menu et listview impossible de récupérer la position de l'item de la listView cliqué
    Salut à tous,

    Alors voilà, j'ai une liste d'item contenu dans une arraylist, et j'ai créer un menu d'options et un context menu.
    Je me suis rendu compte que le context menu ne tenait pas compte de l'item sur lequel je cliquait. En effet si je met une action sur une des options du menu, elle s'apliquera à toute mon arraylist, et pas uniquement à l'item sur lequel j'ai cliqué pour faire apparaître le menu.

    voici mon code pour ce menu :
    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
     public void onCreateContextMenu(ContextMenu menu_item,View v,ContextMenuInfo menuInfo) 
         {
            super.onCreateContextMenu(menu_item, v, menuInfo);
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.menu_itemlist, menu_item);        
         }
         public boolean onContextItemSelected(MenuItem item)
         {
          switch (item.getItemId()) {
     
          	 case R.id.see_item:        
            	  Toast.makeText(this, "drawing of detail's alarm", Toast.LENGTH_SHORT).show();       	 
          		 this.lancementDetailAlarm(0);
                 return true;
     
             case R.id.ack_item:        
            	if (varack == 0){
            		varack = 1;     
                 	ListView list = (ListView)findViewById(R.id.listalarme);
                	AlarmeAdapter adapter = (AlarmeAdapter)list.getAdapter();
                	adapter.ackbutton.setVisibility(0); // n'efface pas l'étoile
                    adapter.notifyDataSetChanged(); 
                    Toast.makeText(this, "this alarm is acknowledged", Toast.LENGTH_SHORT).show();
            	}
            	else {
            		Toast.makeText(this, "you have already ack this alarm", Toast.LENGTH_SHORT).show();
            	}
            	return true;
             }
             return super.onContextItemSelected(item);
          }
    Si on prend l'exemple de "ack_item" j'aimerais lorsque je le choisi que seul un élèment de l'arraylist est la variable varack qui passe à 1, or tous les élèment passe cette variable à un car aprés j'affiche toujours le deuxième message toast.

    Je ne sais pas si ce que je veux est possible en gardant un seul menu? il faut que j'arrive à récupérer la position des item de mon arraylist et à en faire un paramètre de mon menu mais comment?
    Dernière modification par Invité ; 08/07/2011 à 10h11.

Discussions similaires

  1. Context menu sur expandable listview de plusieurs niveaux
    Par Willy55 dans le forum Composants graphiques
    Réponses: 0
    Dernier message: 13/03/2015, 10h34
  2. Réponses: 0
    Dernier message: 26/10/2014, 15h32
  3. position d'un item d'un listView via setOnTouchListener
    Par drick35 dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 28/06/2013, 09h02
  4. Impossible de récupérer la valeur d'un menu déroulant
    Par kyake dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/10/2009, 16h00
  5. [Security] Acegi - Impossible de récupérer le contexte
    Par sgen13 dans le forum Spring
    Réponses: 1
    Dernier message: 21/07/2009, 12h54

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