请阅读以下内容。我把它修好了。
是的我已经问了这个问题,是的,人们建议我使用.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循环是在另一个循环中,我忘了打破第一个...现在它的工作原理!谢谢你的帮助:)答案 0 :(得分:1)
确保break;
行实际上正在运行。在同一次迭代中,两个if语句是否相等?这可能是问题所在。
在eclipse中使用调试器并完成它。
答案 1 :(得分:1)
要么
settings.getString("note" + l, "")
或
settings.getString("notelong" + l, "")
(或两者)不返回空字符串。如果他们不这样做,您的等于比较将返回 false 。在这种情况下,它永远不会进入 break 语句。要使 break 逻辑正常工作, if if语句需要 true 。
答案 2 :(得分:1)
删除您的第一个if
,并检查您的第二个if
在任何迭代中是否为真。