我对android很新,这个项目涉及注册作为第一步,它从用户获取用户名和密码,下一个活动需要登录才能继续。需要登录才能验证用户名和密码。我无法获得用户名,这是表中的第一个字段和最后一个字段密码。
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();
}
}
});
我无法获取值以验证登录详细信息。
答案 0 :(得分:0)
请勿使用==
来比较字符串值使用equalsIgnoreCase()
如果您不想忽略区分大小写,请使用
equals()
。
if(un == username && pw == password)
到
if(un.equalsIgnoreCase(username) && pw.equalsIgnoreCase(password))
答案 1 :(得分:0)
==运算符仅适用于原始数据类型。对于字符串比较,您可以使用equals()或equalsIgnoreCase()。
由于您要比较用户名和密码,强烈建议使用equals()。
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();
}