【问题标题】:Multiple Buttons start multiple Activities at once多个按钮一次启动多个活动
【发布时间】:2013-01-22 20:38:51
【问题描述】:

我目前正在编写一个小 Android 应用程序,并发现了一个关于多个按钮的奇怪问题。我有一个带有 4 个按钮的活动。当我一次按下多个按钮时,两个动作都会被执行。所以我可以按下所有 4 个按钮并启动所有 4 个以下活动。

这是我的 onButtonClick 方法

public void onButtonClick(View view) {
    Intent intent = new Intent(this, RunActivityConfirm.class);

    switch(view.getId()) {
        case R.id.btnRunAcceleration:
            intent.putExtra("DisciplineName", "Acceleration");
            startActivity(intent);
            break;
        case R.id.btnRunSkidPad:
            intent.putExtra("DisciplineName", "Skid Pad");
            startActivity(intent);
            break;
        case R.id.btnRunAutocross:
            intent.putExtra("DisciplineName", "Autocross");
            startActivity(intent);
            break;
        case R.id.btnRunEndurance:
            intent.putExtra("DisciplineName", "Endurance");
            startActivity(intent);
            break;
    }

}

首先我认为问题在于我总是在每个“案例”中调用 startActivity() 但即使我尝试以下所有 4 个活动同时启动

public void onButtonClick(View view){   
    Intent intent = new Intent(this, RunActivityConfirm.class);

    switch(view.getId()) {
        case R.id.btnRunAcceleration:
            intent.putExtra("DisciplineName", "Acceleration");
            break;
        case R.id.btnRunSkidPad:
            intent.putExtra("DisciplineName", "Skid Pad");
            break;
        case R.id.btnRunAutocross:
            intent.putExtra("DisciplineName", "Autocross");
            break;
        case R.id.btnRunEndurance:
            intent.putExtra("DisciplineName", "Endurance");
            break;
    }
    startActivity(intent);
}

这发生在我的应用程序中。无论我按下哪个按钮,每个关联的 Action 都会执行,每个关联的 Activity 都会启动。

我能做些什么吗?

【问题讨论】:

    标签: android button onclick android-activity


    【解决方案1】:

    当我同时按下多个按钮时,两个动作都会执行。

    这是预期的行为。当按下按钮时,您的代码会启动一个活动。按下了多个按钮,因此启动了多个活动。

    如果您想更改此设置以便只能按下一个按钮,那么您需要添加代码来执行此操作。您可以禁用 onButtonClick 中的其他按钮(并在适当的时候重新启用它们)。

    【讨论】:

    • 好吧,多么奇怪的行为。真的没有其他解决方案了吗?我可以在其他应用程序中的每个活动(例如菜单和所有按钮)上一次激活所有内容,这是不可能的。对我来说似乎有点费时。
    • @Willey :“好吧,多么奇怪的行为。” - 为什么这是奇怪的行为?假设这是一个多点触摸屏,那么为什么在触摸多个 UI 元素时会生成多个事件会很奇怪? “......在其他应用程序中这是不可能的。” - 可能是因为您尝试过在第一个被触摸/单击时禁用其他 UI 元素的其他应用程序的作者,或者他们忽略了除第一个事件之外的任何内容。
    • 我认为这是一种奇怪的行为,因为我没有看到它的优点。我不小心同时按下了两个按钮,两个动作都在我没有注意到的情况下执行了。假设我想写一些重要的东西并在信息丢失的同时按下删除按钮,我从来没有注意到它。这对我来说是一个严重的问题。除此之外,我不明白为什么“普通”应用程序应该同时响应多个输入,只要它不是多点触控游戏。
    • 我知道的每个应用程序都是用一根手指(除了缩放)使用的,所以大多数时候两根手指的点击都是偶然的。所以对我来说,如果正常情况下是单点触控会更自然,只有当你真的需要多点触控时,你才能单独激活它。我希望我能说出我的观点。英语不是我的母语;)
    • @Willey:是的,我明白你的意思。我认为您需要与在计算机屏幕上使用鼠标有所不同。使用鼠标不可能同时单击两个按钮,但使用触摸屏则不同。在触摸屏环境中,“点击”Button 就像屏幕上的任何其他触摸一样只是一个“触摸事件”。您需要规划 UI 的设计和事件处理,以确保错误(意外)触摸不会导致问题。是的,编写代码需要付出额外的努力,但这是由于触摸屏的复杂性造成的。
    【解决方案2】:

    因为这是同一个Activity添加

    android:finishOnTaskLaunch="true" 
    

    在您的活动标签下的清单中。它会阻止制作同一活动的多个实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 2019-06-06
      相关资源
      最近更新 更多