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 :

position d'un item d'un listView via setOnTouchListener


Sujet :

Composants graphiques Android

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Points : 88
    Points
    88
    Par défaut position d'un item d'un listView via setOnTouchListener
    Bonjour,
    Je recherche à avoir la position d'un item d'un listView via setOnTouchListener mais il me donne une position .

    Je vois pas ce qui ne va pas.
    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
    public class MainActivity extends ListActivity  implements OnTouchListener {
    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ...
     ListView list = getListView();
           list.setOnTouchListener(this);
    }
    
     class Liste_Pro_Adapter extends ArrayAdapter<Contact_Pro> {
    		Liste_Pro_Adapter() {	super(MainActivity.this,R.layout.ligne,LISTE_PRO);	}
    		ArrayList<String> ArrayListNomSociete = new ArrayList<String>();
    		 ListView list = getListView();
    		 
    		public View getView( int position, View convertView, ViewGroup parent){
    			
    			View row=convertView;
    			if(row==null){
    				LayoutInflater inflater=getLayoutInflater();
    				row=inflater.inflate(R.layout.ligne, parent, false);
    			}
    			ViewHolder viewHolder = new ViewHolder();
    			System.out.println("position enregistré : "+position);
                viewHolder.position=position;
    ...
    }
    public class ViewHolder {
    
    	public int position;
    
    }
    @Override
    	public boolean onTouch(View v, MotionEvent event) {
    		// TODO Auto-generated method stub
    		int action=event.getAction();
    		
    		float xdebut = 0,xfin = 0;
    		int largeurEcran=0;
        	switch(action){
        	case MotionEvent.ACTION_DOWN:
        		xdebut=event.getX();
    			System.out.println("ACTION_DOWN position du x :"+event.getX());
    			ViewHolder postionItem= ((ViewHolder) v.getTag());
    			System.out.println("postionItem:"+postionItem);
        		
        	
        	}
        	return false;
    	}
    Je vous remercie d'avance pour votre aide

    Bonne journée

    Cédric

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur Informatique et Développeur Android
    Inscrit en
    Janvier 2010
    Messages
    384
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur Informatique et Développeur Android

    Informations forums :
    Inscription : Janvier 2010
    Messages : 384
    Points : 321
    Points
    321
    Par défaut
    je ne pense pas que ça possible en touch


    merci

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    La valeur `null` pour un int est impossible !
    De plus, il ne faut pas utiliser System.out.println() mais Log.d("TAG", "valeur : "+position)

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Points : 88
    Points
    88
    Par défaut
    voici le message de logCat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    06-27 13:55:31.273: I/System.out(2324): ACTION_DOWN position du x :413.0
    06-27 13:55:31.273: D/TAG(2324): postionItem:null
    je pense que le problème doit venir du faite que je lui demande de faire un setOnTouchListener sur la liste au lieu des lignes.
    Lorsque je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
    View row=convertView;
    			if(row==null){
    				LayoutInflater inflater=getLayoutInflater();
    				row=inflater.inflate(R.layout.ligne, parent, false);
    			}
    			ViewHolder viewHolder = new ViewHolder();
    			System.out.println("position enregistré : "+position);
                viewHolder.position=position;
                row.setTag(viewHolder);
                row.setOnTouchListener(this);
    ...
    j'ai ce message
    The method setOnTouchListener(View.OnTouchListener) in the type View is not applicable for the arguments (MainActivity.Liste_Pro_Adapter)

    Je ne vois pas pourquoi il ne veux pas s'appliquer à la class Liste_Pro_Adapter
    Avez-vous une explication?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    757
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 757
    Points : 968
    Points
    968
    Par défaut
    Car la méthode à utiliser est celle-ci : http://developer.android.com/referen...ClickListener)

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2012
    Messages : 145
    Points : 88
    Points
    88
    Par défaut
    merci pour votre aide Simon

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

Discussions similaires

  1. Suppression d'item dans une ListView via des CheckBox (Type boite mail)
    Par Berlo56 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 27/03/2014, 09h40
  2. Réponses: 5
    Dernier message: 20/07/2011, 17h58
  3. Réponses: 25
    Dernier message: 13/07/2011, 11h17
  4. [C#] Suppression d'un item dans une listview
    Par Popof dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/04/2006, 13h58
  5. Changer dynamiquement la couleur d'un item d'une listview
    Par little_cypress dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/11/2004, 14h46

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