android 点击滑动事件,android ListView 滑动事件 长按事件 点击事件 需不同的操作 实现方法...

使用手势可以很好解决这个问题package com.kohler.launcher.view;

import com.kohler.launcher.R;

import com.library.util.LogUtil;

import android.content.Context;

import android.gesture.GestureOverlayView;

import android.util.AttributeSet;

import android.view.GestureDetector;

import android.view.GestureDetector.OnGestureListener;

import android.view.MotionEvent;

import android.widget.ListView;

public class CalendarListView extends ListView implements OnGestureListener

{

public interface LongOnClickCallback

{

public void onLongOnClick();

public void onClick();

}

private LongOnClickCallback callback;

public void setCallback(LongOnClickCallback callback)

{

this.callback = callback;

}

public CalendarListView(Context context)

{

super(context);

init();

}

public CalendarListView(Context context, AttributeSet attrs)

{

super(context, attrs);

init();

}

public CalendarListView(Context context, AttributeSet attrs, int defStyle)

{

super(context, attrs, defStyle);

init();

}

private void init()

{

detector = new GestureDetector(getContext(), this);

}

private GestureDetector detector;

@Override

public boolean dispatchTouchEvent(MotionEvent ev)

{

detector.onTouchEvent(ev);

return super.dispatchTouchEvent(ev);

}

@Override

public boolean onDown(MotionEvent e)

{

return false;

}

@Override

public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY)

{

return false;

}

@Override

public void onLongPress(MotionEvent e)

{

//        LogUtil.e(" CalendarListView 长按事件");

//长按模式

if (callback != null)

{

callback.onLongOnClick();

}

}

@Override

public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY)

{

//        LogUtil.e(" CalendarListView onScroll");

return false;

}

@Override

public void onShowPress(MotionEvent e)

{

}

@Override

public boolean onSingleTapUp(MotionEvent e)

{

LogUtil.e(" CalendarListView 点击事件");

if (callback != null)

{

callback.onClick();

}O

return false;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值