我不知道为什么,但是当它达到终止声明的真相时,我的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()
答案 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倍。