我有一个按钮,当单击时,将画布保存到图像文件,然后调用另一个活动。我遇到的问题是,通过测试,我注意到用户可以在调用活动之前连续两次单击该按钮,从而导致写入两个文件。
我也注意到另一个活动中的微调器存在同样的问题。我连续两次单击它们,然后弹出包含所有微调器项目的2个列表视图。
我一直试图谷歌这没有太多运气。对此有一个简单的解决方法吗?
感谢。
答案 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();
}
}
});