在按钮内增加FOR

时间:2015-06-29 11:41:47

标签: java android for-loop

所以,我不确定我是否错过了任何东西......(这已经过了一个周末)但是,假设我有这个:

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

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

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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