根据文本字段值查询DB字段?

时间:2015-02-01 22:30:13

标签: java android sqlite android-sqlite

我目前正在编写登录活动的代码。 我想测试一下用户输入的用户名是否在数据库中。到目前为止我有......

EditText email = (EditText) findViewById(R.id.tf_email);
EditText pass = (EditText) findViewById(R.id.tf_password);

String username = email.getText().toString();
String password = pass.getText().toString();

DBAdapter db = new DBAdapter(this);

db.open();
Cursor u = db.getAllUsers();
if (username = .....)

//The getAllUsers is in the DBAdapter.java file.

public Cursor getAllUsers() 
{
    return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_USERNAME}, null, null, null, null, null); 
} 

提前谢谢。

1 个答案:

答案 0 :(得分:0)

由于db.getAllUsers返回Cursor对象,您需要遍历它以获取数据库中的所有用户列表,如下所示:

ArrayList<String> someUsers = new ArrayList<String>();

if (u.moveToFirst()) {
    do {
        String aUser = u.getString(u.getColumnIndex(KEY_USERNAME));
        someUsers.add(aUser);
    } while (u.moveToNext());
}

然后,您应该检查用户输入的用户名是否在生成的列表中。

if (someUsers.contains(username)) {
    // do stuff
} else {
    // do something else
}