我尝试在我的登录系统中使用查询方法。我的逻辑很简单。一旦用户使用电子邮件和密码注册,如果电子邮件和密码在数据库中匹配,他就可以登录。对于入门代码,我想要从数据库中读取与电子邮件广告密码匹配的行。如果查询方法只返回1行,则用户将转到下一页。
但问题是查询方法没有返回任何行。我提供了以下代码。谢谢
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_signup);
demoText = (TextView) findViewById(R.id.demoText);
input_email = (EditText) findViewById(R.id.login_email);
input_password = (EditText) findViewById(R.id.login_password);
login = (Button) findViewById(R.id.login);
register = (Button) findViewById(R.id.register);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
login_email = input_email.getText().toString();
login_password = input_password.getText().toString();
Log.v("login_signup","Email= "+login_email+" Password"+login_password);
if(checkEntry(login_email,login_password)){
Intent i = new Intent(login_signup.this,anotherscreen.class);
startActivity(i);
Toast.makeText(login_signup.this,"Login Successful",Toast.LENGTH_SHORT).show();
}
else Toast.makeText(login_signup.this,"Login Failed",Toast.LENGTH_SHORT).show();
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(login_signup.this,Register.class);
startActivity(i);
}
});
toolbar= (Toolbar) findViewById(R.id.app_bar);
setSupportActionBar(toolbar);
getSupportActionBar().setIcon(R.drawable.text_icon);
dbHelper = new scannerDbHelper(this);
}
public boolean checkEntry(String email,String password){
db = dbHelper.getReadableDatabase();
String projection[] = {loginEntry.COLUMN_EMAIL_ID,loginEntry.COLUMN_PASSWORD};
String selection = loginEntry.COLUMN_EMAIL_ID + "= ?"+" AND "+loginEntry.COLUMN_PASSWORD + "= ?";
String selectionArgs[] = {email,password};
Cursor cursor = db.query(loginEntry.TABLE_NAME,projection,selection,selectionArgs,null,null,null);
demoText.setText("Rows returned "+ cursor.getCount());
if(cursor.getCount()== 1)
return true;
else
return false;
}