对于循环不终止 - Android

时间:2012-03-07 15:19:04

标签: android for-loop

我不知道为什么,但是当它达到终止声明的真相时,我的for循环不会'停止'。

for(int i = 1; i < 11; i++){
             edittext.setText("");
             EasyGame();
             //if(i==10){
                 //Game.this.finish();

             //}
         }

EasyGame()是一种算术方法,只需将两个数字相加即可。我尝试使用上面显示的if语句,但它仍然不会做任何事情,如果确实如此,它会在第一个问题之后调用finish()!

如果有人愿意帮助我,我将不胜感激。

编辑:

public void EasyGame(){
    Random rand = new Random();
    final int a = (int) rand.nextInt(20)+1;
    final int b = (int) rand.nextInt(20)+1;
    String aString = Integer.toString(a);
    String bString = Integer.toString(b);
    String display = aString + " + " + bString + " =";
    questionLabel.setText(display);
    c = a + b;


        }

for循环位于一个开关/案例中,它处理按钮的onClick()

5 个答案:

答案 0 :(得分:1)

很难说没有看到更多的代码,但是你单独发布的内容本质上是有缺陷的,因为你试图在循环中不断更新UI元素。如果该循环在UI线程上运行,那么系统将无法重绘任何UI元素,例如edittext,直到循环(以及包含回调方法的任何内容)退出。

因此,当你说“我尝试使用上面显示的if语句时,但它仍然不会做任何事情,如果确实如此,它会在第一个问题之后调用finish()!”我假设你相信循环只迭代一次,因为你只看到edittext显示在最后一次.setText()调用中传递的内容。

答案 1 :(得分:0)

我没有看到该代码有任何问题。唯一可能的问题是你的计数器正在某处减少(例如在EasyGame();中),或者问题在其他地方

答案 2 :(得分:0)

由于缺少提供的代码,我认为你的无限循环是在EasyGame()方法中发生的

答案 3 :(得分:0)

循环可能只运行一次,然后由EasyGame()中的永无止境的循环停止。

注意:不要在方法中使用首字母大写的字母,这很令人困惑。

答案 4 :(得分:0)

我同意Trevor Page,我会尝试澄清:

你的代码,如果它在UI线程的回调上运行,可以通过在清除第一个textView或修改第二个文本时生成回调来调用自身。

另外,“你不会停止”是什么意思?我不太明白你要在这里做什么,因为你擦除了textView内容的10倍,并替换了另一个内容的10倍。