当我想控制我想在SQLite数据库中插入的内容时,我遇到了问题。
我使用"如果"条件和声明"&&"那样:
if (addDream.isPressed() && lucidbtn.isChecked()) {
carnet.setText(editDream.getText().toString());
carnet.setLucid(1);
cn.insertNoteReve(carnet);
editDream.setText("");
xp = exp.xpUp(30);
user.setExperience(xp);
userDao.expUp(user);
}
这是有效的,我的xp(这里是30)正确插入我的数据库。 但是,当我想添加第二个"&&"这样的陈述:
else if(addDream.isPressed() && lucidbtn.isChecked() && wild.isChecked()) {
carnet.setText(editDream.getText().toString());
carnet.setLucid(1);
cn.insertNoteReve(carnet);
editDream.setText("");
xp = exp.xpUp(70);
user.setExperience(xp);
userDao.expUp(user);
}
这不起作用,只插入30而不是70.我认为问题出在第二个"&&"陈述,因为我尝试了另一个没有" lucidbtn.isChecked"并且数值已在数据库中修改。
我该如何解决这个问题?
答案 0 :(得分:0)
通过放置else if
,只会执行第一个条件,因为它首先匹配。
如果你想从特定的野外检查插入30或70,那么你可以使用三元和单个if语句
if(addDream.isPressed() && lucidbtn.isChecked()) {
carnet.setText(editDream.getText().toString());
carnet.setLucid(1);
cn.insertNoteReve(carnet);
editDream.setText("");
xp = exp.xpUp(wild.isChecked() ? 70 : 30);
user.setExperience(xp);
userDao.expUp(user);
}
或者您需要单独检查此块中的if (wild.isChecked())
,而不是所有条件的一部分