带有onTouch和onItemLongClick监听器的Android listview

带有onTouch和onItemLongClick监听器的Android listview,android,android-layout,listview,ontouchlistener,onitemlongclicklistener,Android,Android Layout,Listview,Ontouchlistener,Onitemlongclicklistener,你好,我还在开发Android应用程序。早些时候,我使用OnTouch listener创建了一个listview,它可以滑动、双击和长时间单击来执行拖放操作。这是一个简单的文本视图 现在我改为一个自定义的listview行,带有一个textview和一个按钮。在这种配置下,两种手势检测中只有一种可用。当我将android:longclickable设置为true时,可以进行拖放操作,但不会检测到OnTouch。反过来也是如此。有没有人能同时使用两种手势检测的解决方案 <?xml vers

你好,我还在开发Android应用程序。早些时候,我使用OnTouch listener创建了一个listview,它可以滑动、双击和长时间单击来执行拖放操作。这是一个简单的文本视图 现在我改为一个自定义的listview行,带有一个textview和一个按钮。在这种配置下,两种手势检测中只有一种可用。当我将android:longclickable设置为true时,可以进行拖放操作,但不会检测到OnTouch。反过来也是如此。有没有人能同时使用两种手势检测的解决方案

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"   
    android:layout_height="wrap_content" >

    <TextView   
     android:id="@+id/rowTextView"   
     android:layout_width="fill_parent"   
     android:layout_height="wrap_content"
     android:padding="10dp"  
     android:textSize="16sp" >  
    </TextView>

    <ImageButton
     android:id="@+id/rowImgButton"
     android:layout_width="40dp"
     android:layout_height="40dp"
     android:background="#ffff00"
     android:focusable="false"
     android:focusableInTouchMode="false"
     android:layout_alignRight="@+id/rowTextView" />

</RelativeLayout>

这可能适用于,您可以创建一个手势检测器:

myGestureDetector = new GestureDetector(mContext, new GestureDetector.SimpleOnGestureListener() {
            @Override
            public void onLongPress(MotionEvent e) {
                //Handle long press
            }
        });
myGestureDetector.setIsLongpressEnabled(true);
然后在onTouch方法中:

public boolean onTouch (View v, MotionEvent event) {
    myGestureDetector.onTouchEvent(e);
    ...
}

然后,当用户执行长按时,onLongPress方法应启动

您可以使用onTouchListener中的手势检测器来检测longPresses@I-我尝试使用onLongPress,但这个手势应该会启动拖放操作。这在onLongPress是不可能的。你想做什么还不是很清楚。如果你发布一些你正在做的事情的代码,可能会有所帮助。我发布了一个答案,我认为它应该可以完成你正在尝试做的事情。我的问题中解释了这两种手势的目的。我不明白你有什么不明白的?