码迷,mamicode.com
首页 > 移动开发 > 详细

浅谈Android onClick与onLongClick事件触发的问题

时间:2014-06-06 21:01:13      阅读:347      评论:0      收藏:0      [点我收藏+]

标签:des   android   c   style   class   blog   

      之前做按钮的点击事件一直没有注意一些细节,今天做了一个按钮需要有点击和长点击触发不同效果,直接让Activity implements OnClickListener, OnLongClickListener然后添加了相应的处理函数。

bubuko.com,布布扣
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        
    }

    @Override
    public boolean onLongClick(View v) {
        // TODO Auto-generated method stub
        return false;
    }
bubuko.com,布布扣

没多做考虑,直接在函数内添加了我想要的实现。在一次不经意的测试中发现,在我的按钮点击时间中有一个临界值,当我单下按钮的时间等于这个临界值的时候,点击事件和长点击事件会同时触发。点击事件自然是没什么问题,导致这个问题一定是长点击事件出了问题,回过头仔细看长点击事件的方法,发现它和点击事件基本没有区别,唯一的区别就是多了一个返回值。那么这个返回值究竟有什么用呢,查了一下开发文档,对这个方法描述如下:

Public Methods

public abstract boolean onLongClick (View v)

Added in API level 1

Called when a view has been clicked and held.

Parameters
v The view that was clicked and held.
Returns
  • true if the callback consumed the long click, false otherwise.

 说明了如果返回值为true的话这个点击事件会被长点击独占,否则相反。

 这下就可以理解了为什么之前的点击会同时触发两个点击事件。

将onLongClick的返回值设置为true,即可避免这个问题的发生。

浅谈Android onClick与onLongClick事件触发的问题,布布扣,bubuko.com

浅谈Android onClick与onLongClick事件触发的问题

标签:des   android   c   style   class   blog   

原文地址:http://www.cnblogs.com/x-dev/p/3765677.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!