как реализовать как ontouch, так и onfling в одном и том же listview?

у меня есть listview и реализовано onclick, а также onfling. проблема в том, что когда я делаю бросок (проведите пальцем слева направо), событие onclick listview также запускается. Как преодолеть эту проблему? как различить касание (тап) и бросок (свайп) в списке?

     listClickListener = new OnItemClickListener() {

           public void onItemClick(AdapterView<?> parent, View v,int position, long id) {
            //Job of Onclick Listener     
           }
      };
       mContactList.setOnItemClickListener(listClickListener); 
        mContactList.setAdapter(adapter);
        // Gesture detection 
        gestureDetector = new GestureDetector(new MyGestureDetector(prosNos)); 
         gestureListener = new View.OnTouchListener() { 
             public boolean onTouch(View v, MotionEvent event) { 
                 if (gestureDetector.onTouchEvent(event)) { 
                     return true; 
                 } 
                 return false; 
             } 
         }; 

         mContactList.setOnTouchListener(gestureListener); 

        }

     public class MyGestureDetector extends SimpleOnGestureListener { 

        @Override 
        public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { 
           // My fling event
           return false;
        }
    }

PS Возможно ли? прокомментировать OnClickListener ListView и написать ту же логику в любом onTouchEvent? но все же не сомневаюсь, что onFling вызовет onTouch. Я прав?

16
задан edwoollard 12 January 2014 в 12:54
поделиться