andabaozi123 2014-09-13 09:35 采纳率: 0%
浏览 4735

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

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

  • 写回答

1条回答 默认 最新

  • Only凹凸曼 2014-09-13 13: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;  
    }  
    

    }

    评论

报告相同问题?

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog