5

Aquí está el código para mostrar elementos de vista de lista y acción de escucha onclick.Obtener el elemento seleccionado al hacer doble clic en el elemento de vista de lista

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)); 
       } 
      } 

     }); 

Ahora, tengo que implementar para seleccionar el elemento de la lista solo en el doble toque. He intentado utilizar GestureDetector de la siguiente manera:

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; 
    } 
} 

Pero no sé cómo sacar el elemento seleccionado en la aplicación como en GestureDetector ItemClickListener y empezar otra actividad basada en el elemento de lista seleccionado.

Cualquiera por favor ayúdame.

Respuesta

6

utilizan el método de la vista de lista pointToPosition en su método onDoubleTap:

int position = list.pointToPosition(e.getX(), e.getY()); 
Cuestiones relacionadas