Android可扩展列表&;添加双击手势,如何添加侦听器?

Android可扩展列表&;添加双击手势,如何添加侦听器?,android,expandablelistview,Android,Expandablelistview,我的程序创建了可扩展的列表,我还实现了滑动——但我不知道如何添加双击 首先,我有list=getExpandableListView() 在我的主类中,我使用以下代码实现了swipes: final ActivitySwipeDetector swipeDetector = new ActivitySwipeDetector(); list.setOnTouchListener(swipeDetector); list.setOnItemClickLis

我的程序创建了可扩展的列表,我还实现了滑动——但我不知道如何添加双击

首先,我有
list=getExpandableListView()

在我的主类中,我使用以下代码实现了swipes:

final ActivitySwipeDetector swipeDetector = new ActivitySwipeDetector();


         list.setOnTouchListener(swipeDetector);

         list.setOnItemClickListener(new OnItemClickListener() {

                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                        if (swipeDetector.swipeDetected()){
                            // do the onSwipe action 
                        } else {
                            // do the onItemClick action
                        }
                    }
                                });


            list.setOnItemLongClickListener(new OnItemLongClickListener() {
                public boolean onItemLongClick(AdapterView<?> parent, View view,int position, long id) {
                    if (swipeDetector.swipeDetected()){
                        // do the onSwipe action
                        return true;
                    } else {
                        // do the onItemLongClick action
                        return false;
                    }
                }
            });
但是我不知道如何在主类中为它添加侦听器

这只是给了我“list.setOnDoubleTapListener”和“new onDoubleTapListener”上的错误

请帮忙


Z.

上述问题的解决方案:

将以下内容添加到滑动检测器类:
private static final int MIN_DISTANCE=100;
私人浮动downX,downY,upX,upY;
私有操作mSwipeDetected=操作。无;
私有长lastTouchTime=-1

将此添加到ActionDown

 case MotionEvent.ACTION_DOWN: {

        downX = event.getX();
        downY = event.getY();
        mSwipeDetected = Action.None;


        long thisTime = System.currentTimeMillis();

        if (thisTime - lastTouchTime < 250) {

           // Double click
         //  p = mapView.getProjection().fromPixels((int) e.getX(), (int) e.getY());
           lastTouchTime = -1;
           Log.i(logTag, "DOUBLE TAP");
        } else {
           // too slow
           lastTouchTime = thisTime;
        }


         return false; // allow other events like Click to be processed

    }
case MotionEvent.ACTION\u向下:{
downX=event.getX();
downY=event.getY();
mSwipeDetected=操作。无;
long ThistTime=System.currentTimeMillis();
如果(这次-上次接触时间<250){
//双击
//p=mapView.getProjection().fromPixels((int)e.getX(),(int)e.getY());
lastTouchTime=-1;
Log.i(logTag,“双击”);
}否则{
//太慢
lastTouchTime=这次;
}
return false;//允许处理单击等其他事件
}
 public boolean onDoubleTap(MotionEvent e) {
    float x = e.getX();
    float y = e.getY();

    Log.d("Double Tap", "Tapped at: (" + x + "," + y + ")");

    return true;
}
list.setOnDoubleTapListener(new OnDoubleTapListener(){ 
                public boolean onDoubleTap(MotionEvent e) { 

                     return false; 
                } 
                public boolean onDoubleTapEvent(MotionEvent e) { 
                    // viewA.setText("-" + "onDoubleTapEvent" + "-"); 
                     return false; 
                } 
                public boolean onSingleTapConfirmed(MotionEvent e) { 
                     //viewA.setText("-" + "onSingleTapConfirmed" + "-"); 
                     return false; 
                } 

         });
 case MotionEvent.ACTION_DOWN: {

        downX = event.getX();
        downY = event.getY();
        mSwipeDetected = Action.None;


        long thisTime = System.currentTimeMillis();

        if (thisTime - lastTouchTime < 250) {

           // Double click
         //  p = mapView.getProjection().fromPixels((int) e.getX(), (int) e.getY());
           lastTouchTime = -1;
           Log.i(logTag, "DOUBLE TAP");
        } else {
           // too slow
           lastTouchTime = thisTime;
        }


         return false; // allow other events like Click to be processed

    }