android 防止对控件的重复点击和同时点击多个控件

在一个手机界面中,用户经常会同时点击多个控件,经常会在短时间内对某一个控件点击多下,这样就会造成各种各样的bug。

防止点击多个控件

只要在xml文件中的父容器总加入这样一行代码即可:

android:splitMotionEvents=”false”

如在下面的LinearLayout中加入这行话,表示每一次只能点击LinearLayout其中的一个元素,点击了其他的元素是无效的。

<LinearLayout

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_margin="@dimen/dp10"

android:splitMotionEvents="false"

android:background="@drawable/shape_frame_black"

android:orientation="vertical" >

防止点击一个控件多次

这个我们只要加上一个标志位就可以了,判断前后2次的点击时间间隔是否大于一个固定值,这个固定值可以我们自己定义。

private long lastClickTime;

/**

* 防止重复点击

* @return

*/

private boolean isFastDoubleClick() {

long time = System.currentTimeMillis();

long timeD = time - lastClickTime;

if ( 0 < timeD && timeD < 500) {

return true;

}

lastClickTime = time;

return false;

}

时间: 2024-12-16 18:32:10

android 防止对控件的重复点击和同时点击多个控件的相关文章

Android两个控件叠在一起,如何让被挡住的控件显示出来

Android两个控件叠在一起,如何让被挡住的控件显示出来 问题 : 两个控件叠在一起,如何让被挡住的控件显示出来? 比如A,B两个控件,A被B挡住,目前A要显示出来,B不能被隐藏,A的高度只有那么一点,显示出来的时候,B不能隐藏. 其实很简单 A.bringToFront即可.

android如果重写onDraw实现一个类似TextView可以显示表情和链接的控件(一)

先看效果图: 写一个超连接支持的对象: /**作为超连接显示的对象*/ public class LinkInfo implements Comparable<LinkInfo>{ private String content; private String type; private String id; private boolean bIsFace = false; private boolean bSelected = false; public static final String

Android 设置子控件的宽度或高度为 match_parent来填充父控件中的剩余宽度或高度的方法

先上几张效果图, 如下:          上述四张图要实现的布局效果是: 假如父控件中包含两个子控件, 其中一个子控件(上图中为红色button)的宽度是固定数值, 而另一个子控件(上图中为绿色button)的宽度不固定, 要想让这两个子控件的总宽度刚好等于父控件的宽度.可以将宽度不固定的那个控件的宽度设置为match_parent来实现, 但有些细节需要注意, 否则即使设置了match_parent, 也不能出现如上的效果. 注意细节如下: 上述效果可以使用RelativeLayout实现.

Android开发:ListView控件:给Item绑定了点击事件,却点击无效

一.问题引入 ListView控件:给Item绑定了点击事件,却点击无效. 二.解决方案 ListView使用了自定义布局文件,在布局文件中有button等控件时,这些控件获取焦点的级别比listView的item高,所以当点击item时,button等控件会优先获得点击焦点. 解决方法就是在布局文件根元素中添加属性: android:descendantFocusability="blocksDescendants" android:descendantFocusability De

android应用开发--------------看RadioGroup源码,写类似单选选项卡的集成控件(如底部导航,tab等等)

博客为 有时个哥 原创,如需转载请标明出处:http://blog.csdn.net/ls703/article/details/46694967 上面就是需求设计,4个类似的布局控件,每次只能选择一个,然后得到上面对应的钱数.(上面只是效果图,实际数据是从服务器获取,然后付到控件上) 看到这种,我们就回想到,几种实现方法. 1.把这个整体写一个布局,在xml布局中,复制粘贴,代码,凑够4个.非常不建议这样,因为4个的布局样式是一样的,只是数据可能不相同,所以我们应该写一个组合控件然后重复利用.

五:理解控件的运行机制(例:基于Control命名空间的简单控件)

一:先用最简短的话说点理论的1.asp.net中所有的标准控件都可以重写 2.和控件相关的命名空间有 System.Web.UI.Control是所有控件的基类只提供简单的呈现逻辑,不支持样式表 System.Web.UI.WebControls.WebControl继承自Control支持控件外观 System.Web.UI.WebControls.CompositeControl继承自WebControl类派生出多个控件合成的复合控件 3.控件树的实现原理首先Page类本身就是一个控件,它继

C#在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级

首先在form1的窗体载入中新建了一个Class1对象并将本身的引用传递进入其构造函数,然后在Class1的构造函数中创建一个线程.该线程所代理的方法事件是本类中的一个add方法.而add方法的内容则是在form1上放一个textbox.然而这个流程你需要注意的有几个问题:1.哪个是主线程?所谓主线程是第一个启动的线程,是从main开始的.form1的这个窗体是由主线程创建的.2.Thread t的线程是什么?t是由主线程创建的,t的操作内容是在由主线程创建的窗体上放一个textbox.也就是说

iOS开发——实战技术OC篇&amp;点击状态栏ScrollView(包括子控件)自动滚到顶部

点击状态栏ScrollView(包括子控件)自动滚到顶部 其实这种方式我们平时见的还是比较多的,而且适合用户的需求,所以就搬来琢磨了一下,感觉效果还不错 这里就直接将解决思路一一写出来不将代码分段展示了,在代码中我加了详细的注释objective-c的套路和swift基本一样,在最后会将Swift和objective-c的代码一起放上,如果需要直接解决问题的童鞋可以直接将代码拷贝到工程里即可 首先创建一个topWindow继承至NSObject,这里我们考虑将这个功能完全封装起来,所以所有的方法

.net OCX 无法获取“****”控件的窗口句柄,不支持无窗口的ActiveX控 新解决方法

朋友找我帮原来的软件加一个小功能,程序是用VB.NET 写的. 软件需要与外部串口设备通信,一只带串口功能的压力表. 应该时间周期很急,所以串口部分我就直接用厂家提供的VB DEMO 写了个OCX控件给 .NET调用. OCX 的制作过程参考我的这篇文章 http://my.oschina.net/caomenglong/blog/380029 软件制作完成用用VS做了一个安装包给朋友,安装包内已经包含了OCX控件.安装过程中会自动注册. 朋友去给客户安装,发现提示 『 无法获取"****&qu