如何将edittext值与对话框中的数据库值进行比较

时间:2013-03-26 06:13:08

标签: android database dialog android-edittext

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

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

1 个答案:

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