防止小部件在短时间内多次单击

时间:2011-01-11 03:40:15

标签: java android android-widget

我有一个按钮,当单击时,将画布保存到图像文件,然后调用另一个活动。我遇到的问题是,通过测试,我注意到用户可以在调用活动之前连续两次单击该按钮,从而导致写入两个文件。

我也注意到另一个活动中的微调器存在同样的问题。我连续两次单击它们,然后弹出包含所有微调器项目的2个列表视图。

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

感谢。

3 个答案:

答案 0 :(得分:2)

您可以使用一个简单的布尔值,例如mClickBeingProcessed,只要调用保存画布的方法,就会将其设置为true。如果是,则不执行任何操作,否则保存画布并调用其他活动。在方法结束时(或其他处理)将其设置为false。

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

答案 1 :(得分:1)

只需显示进度对话框,直到您的处理进行为止 看到这个。
http://developer.android.com/guide/topics/ui/dialogs.html
谢谢。

答案 2 :(得分: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();
            }
        }
    });