我是android开发的新手。因此,我试图使用Sqlite作为数据库来实现注册和登录页面。但是写完数据库代码和登录活动代码之后。登录后,它不是执行登录后的其他活动,而是执行else代码。 看看下面的代码
数据库代码
//Check if user exist from Database
public boolean checkUser(String email, String password) {
//array of columns to fetch
String[] columns = {Constant.USER_ID};
SQLiteDatabase db = this.getReadableDatabase();
//selection Criteria
String selection = Constant.USER_EMAIL + " =?" + " AND " + Constant.USER_PASSWORD + " =?";
//selection argument
String[] selectionArgs = {email, password};
//Query user table with conditions
Cursor cursor = db.query(Constant.USER_TABLE_NAME, columns, selection, selectionArgs, null,null,null);
int cursorCount = cursor.getCount();
cursor.close();
db.close();
if (cursorCount > 0) {
return true;
}
return false;
}
登录活动代码
private void proceedToLogin(String email, String password)
{
boolean login = myDb.checkUser(email, password);
if (login) {
proceedToDashBoard();
}
else {
Toast.makeText(this, "Failed to login", Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:0)
数据库中可能不存在您要认证的用户,或者您编写的将用户插入数据库的方法不正确。您可以通过在将凭据发送到db的部分放置断点来进行调试,以检查是否为空。
此外,您可以通过以下方式访问SQLite数据库并检查是否存在任何数据:设备资源管理器(android studio的右下角)> data> data> com.yourpackage.name> databases,您将在其中找到您的数据库。确保USB调试处于活动状态,并且您已连接手机。
下载数据库并在线使用sqlite browser来查看其内容。 您还可以查看this文章以进行注册并使用sqlite登录。