Android 防止button多次点击总结

    long lastClick ;
    public void onClick(View v) {
        //大于一秒方个通过
        if (System.currentTimeMillis() - lastClick <= 1000)
        {
            showToast("点那么快干什么!!!");
            return;
        }
        lastClick = System.currentTimeMillis();
    }  

一种常见的写法,记录前后两次点击事件的时间,然后判断一个时间差是否在给定的LimitTime内,如果是则不能点击,

否则,可点击.

这种方式有缺点,多个button,快速切换点击,控制效果不是很好,所以我试着用Android的 handler来控制button点击事件。

 //new 一个handler,用于消息处理

  Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            if(msg.what == GOTO_DIALOG){
                //调用button点击事件处理方法goToDialog
                goToDialog((Integer)msg.obj);
            }
        }
    };

 @Override
    public void onClick(View v) {

       //发送handler消息之前,清空该消息
        handler.removeMessages(GOTO_DIALOG);

       //绑定一个msg,内容为接下来需要的button的ID,
        Message msg = Message.obtain();
        msg.what = GOTO_DIALOG;
        msg.obj = v.getId();

        //发送消息间隔1秒
        handler.sendMessageDelayed(msg, 1000);

    }

    private void goToDialog(int id){

        //多个botton

           switch (id){

            case R.id.btn_back:

            ......

            break;

           case R.id.btn_sumbit:

            ......

            break;

      }

使用上面handler处理后,就不再担心多个button之间切换,乱点了

注意:记得用完handler后销毁

时间: 2024-11-09 02:04:12

Android 防止button多次点击总结的相关文章

Android中Button四种点击事件实现方式

1.Xml添加监听属性,这里添加的doClick. 1 <Button 2 android:id="@+id/bt1" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_content" 5 android:onClick="doClick" 6 android:text="XML添加doClick" 7 andro

【Android】在某一时间段控制Button是否可点击

参考:http://blog.chinaunix.net/uid-9688646-id-1998393.html 好久没更新博客了,或许是因为现在的工作比较轻松.这种现象不乐观啊.今天朋友问我,“一个按钮,比如我想让他周一和周三和周六的20:30-21:00这个时间段能点击其余时间不能点击”.我若假思索,便给他说了思路,然后顺便给朋友实现了下.首先,需要实现一个判断当前为礼拜几的方法,以及获取当前时间的方法,我把这两个方法放进了一个工具类.具体代码如下: import java.text.Dat

Android实现Button按钮点击事件监听的几种方式

工作中的项目通常有多个人一起开发,而每个人都有每个人的代码风格,不注重代码规范通常是前人挖坑,后人采坑,降低项目开发效率及加大维护难度,这里分享几种安卓按钮点击事件监听的实现方式. 方式一:直接在Activity中实现View.OnClickListener接口,重写onClick方法,提供所有按钮监听事件入口.这是实际项目中最常用的方式,尤其在页面有多个按钮的情况下比较适用. package com.example.myapp; import android.app.Activity;impo

android selector(如对TextView点击样式改变)

selector 1.selector 从单词的意思来说:选择者,选择器,就是对你的目标的控制. 从API来说: A controller for the selection of SelectableChannel objects. Selectable channels can be registered with a selector and get a SelectionKey that represents the registration. The keys are also add

Android L中水波纹点击效果的实现

博主参加了2014 CSDN博客之星评选,帮我投一票吧. 点击给我投票 前言 前段时间android L(android 5.0)出来了,界面上做了一些改动,主要是添加了若干动画和一些新的控件,相信大家对view的点击效果-水波纹很有印象吧,点击一个view,然后一个水波纹就会从点击处扩散开来,本文就来分析这种效果的实现.首先,先说下L上的实现,这种波纹效果,L上提供了一种动画,叫做Reveal效果,其底层是通过拿到view的canvas然后不断刷新view来完成的,这种效果需要view的支持,

Android的按钮四种点击事件

本文记录一下按钮的四种点击事件 第一种 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //------------第一种---------------------- Button

Android 的 Button 按钮实现的两种方式

第一组方式: res/laoyout/activity_main.xml 代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height=&

Android viewpager 嵌套 viewpager滑动 点击事件冲突解决方案

为了解决这个问题.可以自定义viewpager,然后在里面监听首饰,自定义点击事件 package com.hpuvoice.view; import android.content.Context; import android.graphics.PointF; import android.support.v4.view.ViewPager; import android.util.AttributeSet; import android.view.GestureDetector; impo

android: button 属性

代码中常用属性: Button bt=new Buttion(Context context); setClickable(boolean clickable) 设置按钮是否允许点击. clickable=true:允许点击 clickable=false:禁止点击 setBackgroundResource(int resid) 通过资源文件设置背景色. resid:资源xml文件ID. 按钮默认背景为:android.R.drawable.btn_default setText(CharSe