相关疑难解决方法(0)

Android防止双击按钮

在Android中阻止双击按钮的最佳方法是什么?

android double-click android-button

152
推荐指数
20
解决办法
12万
查看次数

避免按钮多次快速点击

我的应用程序有问题,如果用户快速多次单击该按钮,那么即使我按下该按钮的对话框消失,也会生成多个事件

通过在单击按钮时将布尔变量设置为标志,我知道了一种解决方案,因此可以阻止将来的点击,直到关闭对话框.但是我有很多按钮,每次按钮都必须这样做,因为每个按钮似乎都是一种矫枉过正.在Android(或许是一些更智能的解决方案)中,没有其他方法只允许每个按钮点击生成事件动作吗?

更糟糕的是,即使处理第一个操作,多个快速点击似乎也会生成多个事件操作,因此如果我想在第一个单击处理方法中禁用该按钮,则队列中已存在等待处理的事件操作!

请帮忙谢谢

android

77
推荐指数
12
解决办法
4万
查看次数

在Android中实现双击按钮

如何在Android中实现双击按钮?我应该使用OnDoubleTapListener吗?

user-interface android double-click

15
推荐指数
3
解决办法
4万
查看次数

处理快速点击按钮

我有一个带有OnClickListener的Button.为了便于说明,请考虑一个显示模态对话框的按钮:

public class SomeActivity ... {

  protected void onCreate(Bundle state) {
    super.onCreate(state);

    findViewById(R.id.ok_button).setOnClickListener(
      new View.OnClickListener() {
        public void onClick(View v) {
          // This should block input
          new AlertDialog.Builder(SomeActivity.this)
            .setCancelable(true)
            .show();
      }
    });
}
Run Code Online (Sandbox Code Playgroud)

在正常使用情况下,会出现警告对话框并阻止进一步输入.用户必须先关闭对话框才能再次点击该按钮.

但有时在对话框出现之前,按钮的OnClickListener会被调用两次.您可以通过快速点击按钮轻松复制此内容.我通常必须在它发生之前尝试几次,但迟早我会在对话框阻止输入之前触发多次onClick(...)调用.

我在Motorola Droid手机的Android 2.1中看到了这种行为.我们在市场上收到了4份崩溃报告,表明这种情况偶尔发生在人们面前.

这取决于我们的OnClickListeners所做的事情,这会导致各种各样的破坏.我们怎样才能保证阻塞对话框在第一次点击后实际阻止输入?

android

10
推荐指数
2
解决办法
2852
查看次数

防止多次启动相同的活动

有很多与后台堆栈管理相关的问题,但没有一个真正让我满意。我发现的越接近那个,但对我来说它看起来像是一种丑陋的解决方法。

当在活动按钮点击一个,我发起一项活动startActivityForResult(),期待一个简单的一个- >回堆栈。但是如果你足够快地向按钮发送垃圾邮件,你最终会触发两个意图,因此两个活动堆叠A -> B -> B

我试图使用FLAG_ACTIVITY_SINGLE_TOP标志来防止第二个创建B活动,但它没有改变任何东西:

这是活动A 中的按钮侦听器:

btn.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Intent intent = new Intent(getApplicationContext(), ActivityB.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        startActivityForResult(intent, REQUEST_CODE);
    }
});
Run Code Online (Sandbox Code Playgroud)

并且日志明确指出onCreate()in 调用了两次(而不是预期的onNewIntent):

btn.onClick()

活动B.onCreate()

btn.onClick()

活动B.onCreate()

我的活动必须singleTasksingleInstance,他们应该只是返回堆叠任何经常性活动的一部分。任何许可将不胜感激!

android android-intent android-activity

6
推荐指数
1
解决办法
1918
查看次数