2 andabaozi123 andabaozi123 于 2014.09.13 17:35 提问

自定义View控件中怎么实现双击事件和单击事件

最近写了一个自定义View控件,想要实现单击事件和双击事件,单击事件到时很容易实现,但是双击事件却不知道怎么实现,求助一下在自定义View控件下怎么实现双击事件。

1个回答

u013243573
u013243573   2014.09.13 21:27

android中只有单击和其他事件,其实都是由OnTouch事件演变而来

public class MainActivity extends Activity implements OnTouchListener {

private long firstClick;

private long lastClick;

// 计算点击的次数

private int count;

@Override 
protected void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState);  
    setContentView(R.layout.activity_main);  
    findViewById(R.id.ontourch).setOnTouchListener(this);  
}  

@Override 
public boolean onTouch(View arg0, MotionEvent event) {  
    switch (event.getAction()) {  
    case MotionEvent.ACTION_DOWN:  
        // 如果第二次点击 距离第一次点击时间过长 那么将第二次点击看为第一次点击  
        if (firstClick != 0 && System.currentTimeMillis() - firstClick > 300) {  
            count = 0;  
        }  
        count++;  
        if (count == 1) {  
            firstClick = System.currentTimeMillis();  
        } else if (count == 2) {  
            lastClick = System.currentTimeMillis();  
            // 两次点击小于300ms 也就是连续点击  
            if (lastClick - firstClick < 300) {// 判断是否是执行了双击事件  
                System.out.println(">>>>>>>>执行了双击事件");  

            }  
        }  
        break;  
    case MotionEvent.ACTION_MOVE:  
        break;  
    case MotionEvent.ACTION_UP:  
        break;  
    }  
    return true;  
}  

}

u012842784
u012842784 你这个似乎不行吧, 只可以响应到双击事件, 单击事件的话是响应不到了,如果要单击事件和双击事件都响应到这样做似乎是不可以了。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!