-1

ユーザーにログイン資格情報を要求するダイアログボックスがあります。そのパスワードを、認証用に以前に保存されたデータベース値と比較したいと思います。Mはそれができません。誰でもplsが助けることができます。

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 に答える