2013-03-26 111 views
-1

我有一個對話框,要求用戶輸入登錄憑證。我想將該密碼與之前存儲用於驗證的數據庫值進行比較。 M不能這樣做。 任何人都可以幫忙。如何獲取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(); 
    } 
} 
+0

您是否收到任何錯誤? – 2013-03-26 06:14:24

+0

是否可以從數據庫中獲取StoredPin? if-else中的哪個部分總是被執行?你有什麼錯誤嗎? – SKK 2013-03-26 06:18:26

+0

什麼是'String confirmPin = new String();'? – RobinHood 2013-03-26 06:31:08

回答

0

更好的數據庫內比較,簡單地傳遞getPin功能內輸入pin參數檢查並返回布爾而不是字符串類似如下:

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

myDataBase.rawQuery'我收到的錯誤在這條線和在'布爾標誌= isValidPin(字符串銷);」這條線太 – shivani 2013-03-26 06:54:27

+0

你得到什麼錯誤? – RobinHood 2013-03-26 06:58:49

+0

'方法rawQuery(String,null)未定義爲類型String# – shivani 2013-03-26 06:59:33

相關問題