不是按钮无意多点击,就是测试容错性。点击之后会有一个处理的时间,这时多次点击的话就会导致程序崩溃,按钮禁用也不行,连续点击的话程序还是会崩溃。谁能告诉我这个问题该怎么解决?

解决方案 »

  1.   

    问题解决,其实就是禁用根本就没起到效果。我在触发事件中使用了
    handler.postDelayed(new Runnable() {
    @Override
    public void run() {
             }
    },2000);
    连续点击的时候,事件就一直积压下来,最后一个一个处理,最后请求数超过了应答极限,就导致出错了,我对取到的数据的判断不足,结果就导致了空指针的错误。在这句话之外加个进度对话框,对得到的数据再加几个判断条件就可以了。但是我现在想知道为什么按钮没能禁用。我做的是listview的分页,点击按钮查看更多,中间禁用后还是要还原的,直到数据加载完才是真正禁用。结果也就是只有到最后才能真正禁用,之前都是按钮变灰了,但是事件还是会触发的。谁能告诉我原因?
      

  2.   

    我之前碰到过这个问题,用到了ProgressDialog....点击之后,直接显示这个,这样用户就不能操作UI了...一直到处理完成才取消显示。
      

  3.   

    加个标志,你的后台处理没结束时标志false,此时不再响应点击事件
      

  4.   

    加个正在操作中的标志,直至处理完之后置为false,这个过程中一直弹框直到处理完后取消弹框给用户下次再操作UI
      

  5.   

    设置一个标志flag,默认是true,onclick事件一发生就设置为false,阻止再一次的点击事件,onclick事件结束之前设置为true,为下一次做准备
    或者使用synchronized(new Object)不过一般使用于多线程
      

  6.   

    我用了ProgressDialog,同时对返回的结果做了处理,如果没有返回的值就不做响应。感谢大家!