使用SQLite数据库进行Android登录验证。无法检索值
我对android非常陌生,这个项目需要注册作为第一步,从用户那里获取用户名和密码,下一个活动需要登录才能继续。需要登录才能验证用户名和密码。我无法获取用户名,它是表中的第一个字段和最后一个字段密码使用SQLite数据库进行Android登录验证。无法检索值,android,Android,我对android非常陌生,这个项目需要注册作为第一步,从用户那里获取用户名和密码,下一个活动需要登录才能继续。需要登录才能验证用户名和密码。我无法获取用户名,它是表中的第一个字段和最后一个字段密码 log.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub un = user.getTe
log.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
un = user.getText().toString();
pw = pass.getText().toString();
Record rec = new Record(MainActivity.this);
SQLiteDatabase sqldb = rec.getReadableDatabase();
Cursor c = sqldb.query(Record.tbname, null,
null, null, null, null, null);
while(c.moveToNext())
{
username = c.getString(0);
password = c.getString(3);
}
if(un == username && pw == password)
{
Toast.makeText(MainActivity.this, "Valid Credentials", Toast.LENGTH_LONG).show();
Intent next = new Intent();
next.setClass(MainActivity.this, HomeActivity.class);
startActivity(next);
}
else
{
Toast.makeText(MainActivity.this, "Invalid Credentials", Toast.LENGTH_LONG).show();
}
}
});
我无法获取值以验证登录详细信息。不要使用
=
来比较字符串值,请使用equalsIgnoreCase()
如果不想忽略区分大小写,请使用equals()
到
==运算符仅适用于基本数据类型。对于字符串比较,可以使用equals()或equalsIgnoreCase() 由于您正在比较用户名和密码,因此强烈建议使用equals() 可能重复的
if(un == username && pw == password)
if(un.equalsIgnoreCase(username) && pw.equalsIgnoreCase(password))
if(un.equals(username) && pw.equals(password))
{
Toast.makeText(MainActivity.this, "Valid Credentials", Toast.LENGTH_LONG).show();
Intent next = new Intent();
next.setClass(MainActivity.this, HomeActivity.class);
startActivity(next);
}
else
{
Toast.makeText(MainActivity.this, "Invalid Credentials", Toast.LENGTH_LONG).show();
}