-1

我有一个对话框,要求用户提供登录凭据。我想将该密码与之前存储用于身份验证的数据库值进行比较。M 做不到。任何人都可以帮忙吗?

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();
    }
}
4

1 回答 1

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();
    }
于 2013-03-26T06:46:02.060 回答