【问题标题】:Increment FOR inside a button在按钮内增加 FOR
【发布时间】:2015-09-15 20:43:57
【问题描述】:

所以,我不确定我是否没有遗漏任何东西......(这是一个周末)但是,假设我有这个:

for(int i=0; i<10;){
    button1.setOnClickListener(blah blah blah){
        public void onClick(View v) {
                i++;
        }
    }
}

它不允许我这样做,它崩溃了,有人可以解释为什么吗?和/或关于如何使这项工作的答案。如果您没有得到它,我想在用户单击按钮时使 FOR 递增。我很确定我错过了一些明显的东西,当我发现它时我会很生气......谢谢你,祝你有美好的一天。

【问题讨论】:

  • 其实你想达到什么目的?
  • 一定是给你stackoverflow异常

标签: java android for-loop


【解决方案1】:

这种方法根本行不通。如果您的目标是每次点击 button1 时增加一个数字并运行一组代码,那么您需要执行以下操作:

// somewhere in a persistent scope
int i = 0;

// somewhere in a function
button1.setOnClickListener(/* ... */) {
  public void onClick(View v) {
    ++i;
    // run your code
  }
}

【讨论】:

  • 只是我希望 FOR 能够在每次重新启动时刷新一些东西。我想我必须手动完成
  • @FábioSantos 你想对偶数处理程序做什么?
  • @Benten 好的,所以,这是一个游戏,它有 5 个回合,当我点击按钮时,它会将自己设置为不可点击,因此你不能发送垃圾邮件,它会变为绿色。在此之后,我想将自己改回正常状态。显然这样做了 5 轮
  • 我认为您只需要一个普通的 for 循环,然后在循环内使用 i 的值。
【解决方案2】:

它崩溃是因为循环永远不会终止,因为i 永远不会增加。事件处理程序按钮中有一个i++ 语句,该按钮从未被点击过。

【讨论】:

    【解决方案3】:

    首先,循环没有终止,达到 util 值所以它将继续运行循环,浪费 CPU 周期,其次在每次迭代浪费内存时创建和附加新的 EventListener。它可能会扩展为设备上的应用程序提供的资源限制。 解决方案, 在回调函数onClick()中使用全局变量递增值并检查是否小于10。

    【讨论】:

      猜你喜欢
      • 2018-10-09
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2019-07-16
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      相关资源
      最近更新 更多