【问题标题】:Android activity taking button click of next activity?Android活动采取按钮点击下一个活动?
【发布时间】:2015-02-12 09:32:13
【问题描述】:

我有三个活动,比如说 A、B、C。我在 A 中有一个按钮。当我们按下 A 中的按钮时会加载按钮 B。活动 B 中也有一个按钮。当我们单击此按钮时,它将加载 C。两个按钮都在同一位置。

现在的问题是,当我多次单击 A 中的按钮时,它首先加载活动 B,然后加载 C。如何防止这种情况发生? 我禁用了该按钮并在恢复时启用了该按钮。但这也不起作用。 我该怎么办?谁能帮忙...第一个到第二个活动之间的导航太慢了。我在第二个活动中集成了相机 api。这是因为这个而发生的吗?

public void onButtonAPressed(View v){
    final Intent sIntent = new Intent(this,SecondActivity.class);
    startActivity(sIntent);     
}

【问题讨论】:

  • 请添加代码片段以获得更好的说明
  • 代码,贴一些代码?
  • @Skynet 我应该在这里发布哪些代码?
  • 你的 XML 和 onCLick 监听器

标签: android button click


【解决方案1】:

你的问题有点令人困惑,但我会澄清一下我认为你在问什么。

我相信您是说您有视图 A、B 和 C。每个视图都有一个完全相同的按钮,因此当您单击 A 时,它会加载 B。当您单击 Activity B 中的按钮时,它会加载 C .

您的问题是快速单击“A”中的按钮会进入活动“B”,然后导致“C”加载。

假设这是正确的:

我从上面注意到,在您调用 startActivity 之后,您并没有使用“finish()”关闭当前活动。我认为您的所有活动也是如此。如果是这种情况,那么我相信您可能会导致 CPU 或内存被不必要地消耗。此外,它可能是按钮按下被“B”如此迅速消耗的一个因素。

我的建议是:

finish() 加载下一个活动时。

默认情况下禁用该按钮,并可能在一小段时间后启用它。您可以使用处理程序来做到这一点。

private myButtonEnableHandler = new Handler();

在 onCreate 中:

myButtonEnableHandler.postDelayed(buttonEnablerFunction, 1000);

然后创建一个 buttonEnablerFunction 来“启用”按钮。我相信这应该可以防止意外点击。

记得在 onDestroy 函数中销毁处理程序(myButtonEnableHandler.removeCallbacks(buttonEnablerFunction);

【讨论】:

  • 谢谢。但我需要后面的活动。我一得到点击就禁用了该按钮。我试过第二个按钮只会在 onresume 中可见,然后它也不起作用
  • 我认为您需要发布更多代码。如果按下按钮,那么它将对您的代码做出反应,如果没有,我看不到该代码是如何被调用的,除非有其他错误,即在 onCreate 或 onResume 函数中。因此,您需要共享更多代码以便我们提供帮助。
猜你喜欢
  • 2013-06-08
  • 1970-01-01
  • 1970-01-01
  • 2017-12-17
  • 1970-01-01
  • 2015-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多