Android 登录的用户验证

Android 登录的用户验证,android,android-sqlite,Android,Android Sqlite,我正在申请。有一个登录页面,用户在该页面的edittext字段中输入用户名。然后将其传递给我的databasehelper类中的一个函数,该函数根据所有用户名所在的表中的条目检查用户名 以下是我在databasehelper类中为验证编写的函数: public String verify_user(String is_user) { String verify = " "; String check = " "; SQLiteDatabase fg = this.getR

我正在申请。有一个登录页面,用户在该页面的edittext字段中输入用户名。然后将其传递给我的databasehelper类中的一个函数,该函数根据所有用户名所在的表中的条目检查用户名

以下是我在databasehelper类中为验证编写的函数:

public String verify_user(String is_user)
{
    String verify = " ";
    String check = " ";
    SQLiteDatabase fg = this.getReadableDatabase();
    Cursor c = fg.query(Login_Table, null, null, null, null, null, null);
    int iuser = c.getColumnIndex(colUsername);
    for(c.moveToFirst() ; !c.isAfterLast();c.moveToNext())
    {
        verify = c.getString(iuser);
        if(is_user == verify)
        {
            check = "Valid User!";
        }
        else
        {
            check = "Not Valid User!";
        }
    }
    return check;

}
is_用户来自.xml布局文件,用户在其中输入用户名。。。当我调试时,我发现了一个奇怪的行为。尽管在条件中,用户和验证在某一点上具有相同的值,但仍执行其他操作。所以我知道用户是有效的,这段代码表示无效用户。请引导我通过。谢谢大家!

根据一项新建议:

String check = " ";
    SQLiteDatabase fg = this.getReadableDatabase();
    String[] args = new String[1];
    args[0] = is_user;
    Cursor c = fg.query(Login_Table, null, colUsername + " = ?", args, null, null, null);
    int iuser = c.getColumnIndex(colUsername);
    if(is_user.equals(c.getString(iuser)))
    {
        check = "Valid User!";
    }
    return check;

在Java中,可以使用
equals()
,而不是
=

if(is_user.equals(verify))
此外,您不需要遍历所有用户。只需在查询中添加一个条件即可。有关更多信息,请参阅

编辑:好的查询应该是:

String[] args = new String[1];
args[0] = is_user;
Cursor c = fg.query(Login_Table, null, colUsername + " = ?", args, null, null, null);
始终使用参数,不要像
colUsername+“=”+is\u user那样连接,这很容易受到攻击。

使用

.equals(...).

if(is_user.equals(verify)){
...

你能在这里指定游标的查询吗??我正在尝试与用户名进行比较!是游标c=fg.query(Login_Table,colUsername,colUsername+“=”+is_user,null,null,null)?啊,我明白了。eclipse说我需要将colusername从string更改为string[]。为什么会这样?在我的类中,静态最终字符串colUsername=“Username”;您可以将
null
放在那里选择所有列。我已经更新了答案。