我有一个对话框,要求用户输入登录凭据。我想将该密码与之前存储的用于身份验证的数据库值进行比较。我不能那样做。 任何人都可以帮忙。
public void onClick(View v) {
// TODO Auto-generated method stu
Toast.makeText(context, "Button Clicked", Toast.LENGTH_SHORT).show();
String existPin=exist_pin.getText().toString();
String confirmPin=new String();
prefEditor.putString("ExistPin", existPin);
prefEditor.commit();
WayDataBase way=new WayDataBase(LoginActivity.this);
String storedPin=way.getPin(confirmPin);
Toast.makeText(context, "Data from database", Toast.LENGTH_SHORT).show();
if(existPin.equals(storedPin))
{
d2.dismiss();
Intent i=new Intent(getApplicationContext(),ApplicantPage1.class);
startActivity(i);
}
else
{
Toast.makeText(context, "Invalid credentials", Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:0)
最好在数据库中进行比较,只需在pin
函数中的参数中输入getPin
并检查并返回布尔值而不是字符串,如下所示:
public boolean isValidPin(String pin) {// within database.
boolean type = false;
Cursor c = myDataBase.rawQuery(
"select * from table where user_pin='" + pin+ "'", null);
if (c.getCount() > 0) {
c.moveToFirst();
type = true;
}
c.close();
return type;
}
从框中取出引脚并传递给函数,然后输入条件并检查布尔值。
String pin=exist_pin.getText().toString();
boolean flag=isValidPin(String pin);
if(flag)
{
d2.dismiss();
Intent i=new Intent(getApplicationContext(),ApplicantPage1.class);
startActivity(i);
}
else
{
Toast.makeText(context, "Invalid credentials", Toast.LENGTH_SHORT).show();
}