5

Oto kod służący do wyświetlania elementów listview i akcji odbiornika onclick.Pobierz wybraną pozycję, gdy klikniesz dwukrotnie pozycję widoku listy.

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

     }); 

Teraz muszę zaimplementować, aby wybrać element listy tylko na podsłuchu. Próbowałem użyć GestureDetector następująco:

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

Ale nie wiem, jak zdobyć zaznaczony element w realizacji GestureDetector jak w ItemClickListener i rozpocząć inną działalność w oparciu o wybraną list-item.

Proszę, pomóżcie mi.

Odpowiedz

6

zastosować metodę listview pointToPosition w swojej metodzie onDoubleTap:

int position = list.pointToPosition(e.getX(), e.getY()); 
Powiązane problemy