0

参见下文。我把它修好了。

是的,我已经问过这个问题,是的,人们建议我使用 .equals 但它仍然不起作用。

我的问题是我的代码没有破坏 for 循环。

for(int l=0; l<1000; l++){
    if(settings.getString("note" + l, "").equals("")){
        if(settings.getString("notelong" + l, "").equals("")){
            editor.putString("note" + l, title.getText().toString());
            editor.putString("notelong" + l, note.getText().toString());
            editor.commit();
            break; // This should break the loop BUT IT DOESN'T...
        }
    }
}

有什么建议么?

编辑:是的,它运行中断。否则它不会创建笔记

编辑2:对不起,这个for循环在另一个for循环中,我忘了打破第一个......现在它可以工作了!谢谢你的帮助 :)

4

3 回答 3

2

任何一个

settings.getString("note" + l, "")

或者

settings.getString("notelong" + l, "")

(或两者)不返回空字符串。如果没有,您的equals比较返回false。在这种情况下,它永远不会进入break语句。为了使您的中断逻辑起作用,两个if语句都必须为true

于 2013-08-05T22:00:59.247 回答
1

Make sure that the break; line is actually being run. Do both the if statements equal true on the same iteration? That could be the problem.

Use the debugger in eclipse and walk through it.

于 2013-08-05T21:56:23.393 回答
1

删除你的第一个if,并检查你的第二个if在任何迭代中是否相等。

于 2013-08-05T22:01:47.290 回答