5

Voici le code pour afficher les éléments listview et l'action onclick listener.Obtenez l'élément sélectionné lorsque vous double-cliquez sur l'élément listview

ListView list = (ListView) findViewById(R.id.list); 
     ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
       this, R.array.list, 
       android.R.layout.simple_list_item_1); 
     list.setAdapter(adapter); 
     list.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> l, View v, int position, 
        long id) { 
       String sel = (String) adapterView 
          .getItemAtPosition(position); 
       Toast.makeText(MyExample.this, "Your selection: " + sel, Toast.LENGTH_SHORT).show(); 
       if (sel.equals("Photos"){ 
        startActivity(new Intent(MyExample.this, Photos.class)); 
       } 
      } 

     }); 

Maintenant, je dois mettre en œuvre pour sélectionner l'élément de liste seulement sur double-tapé. J'ai essayé d'utiliser GestureDetector comme suit:

GestureDetector gestureDectector = new GestureDetector(this, new GestureListener());   
list.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       gestureDectector.onTouchEvent(event); 
       return true; 
      } 
     }); 



public class GestureListener extends GestureDetector.SimpleOnGestureListener { 

    public boolean onDown(MotionEvent e) { 
     return true; 
    } 

    public boolean onDoubleTap(MotionEvent e) { 
     Log.d("Double_Tap", "Yes, Clicked"); 
     return true; 
    } 
} 

Mais je ne sais pas comment l'élément sélectionné dans la mise en œuvre GestureDetector comme dans ItemClickListener et commencer une autre activité en fonction de la liste de l'élément sélectionné.

Quelqu'un s'il vous plaît aidez-moi.

Répondre

6

Utilisez la méthode pointToPosition de ListView dans votre méthode onDoubleTap:

int position = list.pointToPosition(e.getX(), e.getY()); 
Questions connexes