有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    是因为在onClick中检查的是rpq的值,而不是isEnteredStr?(您正在检查isEnteredStr以查看它是否包含任何内容,但在检查值时却没有)