当用户快速/重复点击按钮时,我是否负责处理?

时间:2012-12-07 16:14:57

标签: android android-activity android-networking

作为Android开发人员,我是否负责处理用户快速重复地按下按钮的情况?或者这被认为是用户滥用?从后端的数据角度来看,没有什么不好的事情发生。

我有一个按钮,当被选中时会拨打服务器。一旦服务器响应,就会从返回的消息中生成一个活动(使用处理程序)。在某些情况下,如果用户反复按下按钮,重复活动可能会开始堆叠,并可能导致糟糕的用户体验(即用户可能需要多次点击后退按钮才能返回到前一个屏幕)

修改: 我遗漏了一些细节。现在,在等待服务器响应时显示 spinner 对话框。这会拦截所有点击。问题在于,在某些情况下,解雇微调器和启动新活动之间的时间足够长,以便用户进行更多点击。

现在我正在禁用按钮,但似乎有点黑客可能有更好的解决方案。

4 个答案:

答案 0 :(得分:6)

  

我是否负责处理用户快速反复地按下按钮的情况?

通常是。

  

或者这被视为用户滥用?

用户的意见是重要的,用户可能不会认为这是对您应用的“滥用”。

  

服务器响应后,将从返回的消息中生成一个活动(使用处理程序)。我

请勿在此类延迟后启动活动,特别是因为服务器可能永远不会响应。

  

在某些情况下,如果用户反复按下按钮,重复的活动可能会开始堆叠,并可能导致糟糕的用户体验(即用户可能需要多次点击后退按钮才能返回上一个屏幕)

因此,换句话说,您的UI会让用户感到沮丧。解决方案是编写更好的UI。

答案 1 :(得分:5)

当您开始执行需要很长时间的操作时,最好显示ProgressDialog,然后在任务完成时将其关闭。

private ProgressDialog mProgressDialog;

...

mProgressDialog = new ProgressDialog(context);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setMessage("Loading...");
mProgressDialog.show();

...

mProgressDialog.dismiss();

答案 2 :(得分:1)

第一次按下后的简单解决方案btn.setEnabled(false)。在需要时重新启用。

就你的问题而言:

  

作为Android开发人员,我负责处理这种情况   用户快速重复地按下按钮的位置?

我会说不,我相信用户足够聪明,如果他们滥用应用程序,它可能无法按预期执行。虽然您可以使用自己的技术来提升这个问题,但是如果您愿意的话。

答案 3 :(得分:1)

取决于你的意图。您是否试图在整个运行过程中禁止点击两次?或者你想不允许快速点击它。

在第一种情况下,只需在第一次点击后使用myButton.setEnabled(false);停用按钮。

如果要在一段时间内禁用它,请在OnClick上使用if和else。将此与等待功能相结合。

类似的东西:

public void Sleeper() {
  myButton.setEnabled(false);
  wait(time);
  myButton.setEnabled(true):
}