2011-01-11 46 views
0

我有一个按钮,单击它时将画布保存到图像文件,然后调用另一个活动。我遇到的问题是,通过测试,我发现用户可以在调用该活动之前在连续两次中单击该按钮,从而导致写入两个文件。防止小部件在短时间内多次点击

我还注意到纺纱厂在另一项活动中出现同样的问题。我连续点击它们两次,然后弹出两个包含我的所有微调项目的列表视图。

我一直在试图谷歌这没有太多的运气。有这个简单的解决办法吗?

谢谢。

回答

0

事实证明,我不得不实施这两个建议才能使其发挥作用。 +1给你们每个人。

我用了一个不确定的进度对话框,和一个布尔值,像这样:

Button send = (Button) findViewById(R.id.send); 
    send.setOnClickListener(new OnClickListener() {   
     @Override 
     public void onClick(View v) { 
      if (mAllowSave) { 
       mAllowSave = false; 
       showDialog(SAVING_DIALOG); 
       mSaveFileThread = new SaveFileThread(handler); 
       mSaveFileThread.start(); 
      } 
     } 
    }); 
2

您可以拥有一个简单的布尔值,如mClickBeingProcessed,只要调用保存画布的方法,就将其设置为true。如果这是真的,你什么都不做,否则你保存画布并打电话给其他活动。在您的方法(或其他处理)结束时,将其设置回false。

另一种选择是存储最近点击的时间戳。如果点击发生在前一次点击的X时间内(无论您决定的值是什么,可能为1000毫秒),它将被忽略。

+0

你是怎么写的,我想之前我看到的问题写至七分钟消息? +1 :) – 2011-01-11 04:37:06