if语句或查询中的java错误
我只想知道我的问题是在我的“如果”语句中还是在我的查询中。。。如果你想慷慨地帮助我,并进一步将不胜感激,但作为一个初学者,我觉得这对我来说是一个很好的为自己解决问题
我的问题是,无论我在编辑文本框中输入什么值,结果都会返回true(将我带到应用程序的下一个屏幕)。除非我将其留白,否则它将执行它应该执行的操作,即显示一条文本,说明“您没有输入密码”。有人能告诉我我的问题出在哪里吗
public void buttonWork() {
button_credCheck.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Integer rpq = regPwdQuery();
String isEnteredStr = editText_pwdInput.getText().toString();
if (TextUtils.isEmpty(isEnteredStr)) {
Toast.makeText(LogInActivity.this, "You did not enter a password!", Toast.LENGTH_LONG).show();
}
else if
(rpq.equals(1)) {
Intent myIntent = new Intent(LogInActivity.this, FindInfoActivity.class);
startActivity(myIntent);
}
else {
Toast.makeText(LogInActivity.this, "Incorrect Password", Toast.LENGTH_LONG).show();
}
}
});
}
public Integer regPwdQuery() {
int count = 0;
String regPwdData = editText_pwdInput.getText.toString();
String regQuery = "SELECT COUNT(*) AS COUNT FROM UsrPass_table WHERE Pwrd ='" + regPwdData + "'";
SQLiteDatabase uDB = usrDB.getReadableDatabase();
Cursor cursor = uDB.rawQuery(regQuery, null);
while (cursor.moveToNext()){
count = cursor.getCount();
}
cursor.close();
return count;
}
编辑: 我试着把我的else if改成:rpq。等于(2),因为我被告知getCount将始终返回1。这导致所有密码(即使是正确的密码,也已验证存在于数据库中)被阻止,并表示密码不正确。。因此,如果我将if语句保留为检查1,那么它不会阻止不正确的密码,如果我将if语句设置为检查2,那么它会阻止所有内容。。我的假设是错误在我的查询中的某个地方。。。如果查询返回true,也许我需要一种向“cnt”添加1的方法。。。我试着在我的regPwdQuery的几个不同的地方添加一个cnt++,但没有成功。。有人能帮我吗
# 1 楼答案
是因为在
onClick
中检查的是rpq
的值,而不是isEnteredStr
?(您正在检查isEnteredStr以查看它是否包含任何内容,但在检查值时却没有)